diff --git a/.env.DApp b/.env.DApp
new file mode 100644
index 000000000..444ef413b
--- /dev/null
+++ b/.env.DApp
@@ -0,0 +1,4 @@
+SCHEME = "DApp"
+APP_IDENTIFIER = "com.walletconnect.dapp"
+MATCH_IDENTIFIERS = "com.walletconnect.dapp"
+APPLE_ID = "1606875879"
\ No newline at end of file
diff --git a/.envrc b/.envrc
new file mode 100644
index 000000000..a498dd64e
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+source .env
diff --git a/.github/workflows/build_artifacts.yml b/.github/workflows/build_artifacts.yml
index 94bff827b..8cfb69080 100644
--- a/.github/workflows/build_artifacts.yml
+++ b/.github/workflows/build_artifacts.yml
@@ -16,8 +16,7 @@ on:
jobs:
build:
- runs-on:
- group: apple-silicon
+ runs-on: macos-latest-xlarge
timeout-minutes: 15
steps:
diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
index 1f26d47f9..0dfbfbbef 100644
--- a/.github/workflows/cd.yml
+++ b/.github/workflows/cd.yml
@@ -13,8 +13,7 @@ env:
PACKAGE_VERSION: ${{ github.event.pull_request.title }}
jobs:
set-user-agent:
- runs-on:
- group: apple-silicon
+ runs-on: macos-latest-xlarge
steps:
- uses: actions/checkout@v2
with:
@@ -29,4 +28,4 @@ jobs:
- name: Lint CocoaPods
run: |
- pod lib lint --verbose --no-clean --quick --allow-warnings --platforms=ios WalletConnectSwiftV2.podspec
\ No newline at end of file
+ pod lib lint --verbose --no-clean --quick --allow-warnings --platforms=ios reown-swift.podspec
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d021cfad9..090b11b3d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -22,8 +22,7 @@ jobs:
prepare:
needs: authorize
- runs-on:
- group: apple-silicon
+ runs-on: macos-latest-xlarge
steps:
- uses: actions/checkout@v3
with:
@@ -36,8 +35,7 @@ jobs:
test:
needs: prepare
- runs-on:
- group: apple-silicon
+ runs-on: macos-latest-xlarge
timeout-minutes: 15
strategy:
fail-fast: false
diff --git a/.github/workflows/cocoapods.yml b/.github/workflows/cocoapods.yml
index 0d533c0c9..3bf3e9a75 100644
--- a/.github/workflows/cocoapods.yml
+++ b/.github/workflows/cocoapods.yml
@@ -5,8 +5,7 @@ on:
types: [ published ]
jobs:
set-user-agent:
- runs-on:
- group: apple-silicon
+ runs-on: macos-latest-xlarge
steps:
- uses: actions/checkout@v2
with:
diff --git a/.github/workflows/deploy_pages.yml b/.github/workflows/deploy_pages.yml
deleted file mode 100644
index 9901d0c0d..000000000
--- a/.github/workflows/deploy_pages.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-# Simple workflow for deploying static content to GitHub Pages
-name: Deploy static content to Pages
-
-on:
- # Runs on pushes targeting the default branch
- push:
- branches: ["main"]
-
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
-permissions:
- contents: read
- pages: write
- id-token: write
-
-# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
-# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
-concurrency:
- group: "pages"
- cancel-in-progress: false
-
-jobs:
- # Single deploy job since we're just deploying
- deploy:
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- runs-on:
- group: apple-silicon
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Generate docs
- shell: bash
- run: |
- ./generate_docs.sh
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v1
- with:
- # Upload just docs directory
- path: 'docs'
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v2
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index df62cc8a9..85dce2767 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,16 +1,19 @@
name: release
on:
- schedule:
- # Runs "Every Monday 10am CET"
- - cron: '0 10 * * 1'
-
workflow_dispatch:
+ inputs:
+ app:
+ type: choice
+ description: Which sample app to release
+ options:
+ - DApp
+ - WalletApp
+ - Showcase
jobs:
build:
- runs-on:
- group: apple-silicon
+ runs-on: macos-latest-xlarge
steps:
- uses: actions/checkout@v3
@@ -35,5 +38,6 @@ jobs:
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
WALLETAPP_SENTRY_DSN: ${{ secrets.WALLETAPP_SENTRY_DSN }}
+ MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
run: |
- make release_wallet APPLE_ID=${{ secrets.APPLE_ID }} TOKEN=$(echo -n $GH_USER:$GH_TOKEN | base64) PROJECT_ID=${{ secrets.RELEASE_PROJECT_ID }} WALLETAPP_SENTRY_DSN=${{ secrets.WALLETAPP_SENTRY_DSN }} MIXPANEL_TOKEN=${{secrets.MIXPANEL_TOKEN}}
+ make release APPLE_ID=${{ secrets.APPLE_ID }} TOKEN=$(echo -n $GH_USER:$GH_TOKEN | base64) PROJECT_ID=${{ secrets.RELEASE_PROJECT_ID }} WALLETAPP_SENTRY_DSN=${{ secrets.WALLETAPP_SENTRY_DSN }} MIXPANEL_TOKEN=${{secrets.MIXPANEL_TOKEN}} APP=${{ github.event.inputs.app }}
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/CommonsTests.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/CommonsTests.xcscheme
new file mode 100644
index 000000000..141246c9c
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/CommonsTests.xcscheme
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/EventsTests.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/EventsTests.xcscheme
new file mode 100644
index 000000000..7f7753025
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/EventsTests.xcscheme
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/RelayerTests.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/RelayerTests.xcscheme
new file mode 100644
index 000000000..f4fc9ed05
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/RelayerTests.xcscheme
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectHistory.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectHistory.xcscheme
deleted file mode 100644
index 4311c49f7..000000000
--- a/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectHistory.xcscheme
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectKMSTests.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectKMSTests.xcscheme
new file mode 100644
index 000000000..524c3cb72
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectKMSTests.xcscheme
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectSignTests.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectSignTests.xcscheme
new file mode 100644
index 000000000..96b9d8baa
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectSignTests.xcscheme
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectUtilsTests.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectUtilsTests.xcscheme
new file mode 100644
index 000000000..c78f495d4
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/WalletConnectUtilsTests.xcscheme
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/Web3Modal.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/Web3Modal.xcscheme
new file mode 100644
index 000000000..ab76cc547
--- /dev/null
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/Web3Modal.xcscheme
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Example/AppKitLab/AlertPresenter.swift b/Example/AppKitLab/AlertPresenter.swift
new file mode 100644
index 000000000..5da5d4668
--- /dev/null
+++ b/Example/AppKitLab/AlertPresenter.swift
@@ -0,0 +1,35 @@
+import Foundation
+import SwiftMessages
+import UIKit
+
+struct AlertPresenter {
+ enum MessageType {
+ case warning
+ case error
+ case info
+ case success
+ }
+
+ static func present(message: String, type: AlertPresenter.MessageType) {
+ DispatchQueue.main.async {
+ let view = MessageView.viewFromNib(layout: .cardView)
+ switch type {
+ case .warning:
+ view.configureTheme(.warning, iconStyle: .subtle)
+ case .error:
+ view.configureTheme(.error, iconStyle: .subtle)
+ case .info:
+ view.configureTheme(.info, iconStyle: .subtle)
+ case .success:
+ view.configureTheme(.success, iconStyle: .subtle)
+ }
+ view.button?.isHidden = true
+ view.layoutMarginAdditions = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
+ view.configureContent(title: "", body: message)
+ var config = SwiftMessages.Config()
+ config.presentationStyle = .top
+ config.duration = .seconds(seconds: 1.5)
+ SwiftMessages.show(config: config, view: view)
+ }
+ }
+}
diff --git a/Example/AppKitLab/AppKitLab.entitlements b/Example/AppKitLab/AppKitLab.entitlements
new file mode 100644
index 000000000..928dcc298
--- /dev/null
+++ b/Example/AppKitLab/AppKitLab.entitlements
@@ -0,0 +1,14 @@
+
+
+
+
+ com.apple.developer.associated-domains
+
+ applinks:lab.web3modal.com
+
+ com.apple.security.application-groups
+
+ group.com.walletconnect.web3modal
+
+
+
diff --git a/Example/AppKitLab/AppKitLabApp.swift b/Example/AppKitLab/AppKitLabApp.swift
new file mode 100644
index 000000000..8076f912c
--- /dev/null
+++ b/Example/AppKitLab/AppKitLabApp.swift
@@ -0,0 +1,171 @@
+import Combine
+//import Sentry
+import SwiftUI
+import UIKit
+import WalletConnectSign
+import ReownAppKit
+
+#if DEBUG
+import Atlantis
+#endif
+
+
+class SocketConnectionManager: ObservableObject {
+ @Published var socketConnected: Bool = false
+}
+
+@main
+class AppKitLabApp: App {
+ private var disposeBag = Set()
+ private var socketConnectionManager = SocketConnectionManager()
+
+
+ @State var alertMessage: String = ""
+
+ required init() {
+ #if DEBUG
+ Atlantis.start()
+ #endif
+
+ let projectId = InputConfig.projectId
+
+ // We're tracking Crash Reports / Issues from the Demo App to keep improving the SDK
+// SentrySDK.start { options in
+// options.dsn = "https://8b29c857724b94a32ac07ced45452702@o1095249.ingest.sentry.io/4506394479099904"
+// options.debug = false
+// options.enableTracing = true
+// }
+//
+// SentrySDK.configureScope { scope in
+// scope.setContext(value: ["projectId": projectId], key: "Project")
+// }
+
+ let metadata = AppMetadata(
+ name: "Web3Modal Swift Dapp",
+ description: "Web3Modal DApp sample",
+ url: "www.web3modal.com",
+ icons: ["https://avatars.githubusercontent.com/u/37784886"],
+ redirect: try! .init(native: "w3mdapp://", universal: "https://lab.web3modal.com/web3modal_example", linkMode: true)
+ )
+
+ Networking.configure(
+ groupIdentifier: "group.com.walletconnect.web3modal",
+ projectId: projectId,
+ socketFactory: DefaultSocketFactory()
+ )
+
+ AppKit.configure(
+ projectId: projectId,
+ metadata: metadata,
+ crypto: DefaultCryptoProvider(),
+ authRequestParams: nil, // use .stab() for testing SIWE
+ customWallets: [
+ .init(
+ id: "swift-sample",
+ name: "Swift Sample Wallet",
+ homepage: "https://walletconnect.com/",
+ imageUrl: "https://avatars.githubusercontent.com/u/37784886?s=200&v=4",
+ order: 1,
+ mobileLink: "walletapp://",
+ linkMode: "https://lab.web3modal.com/wallet"
+ )
+ ]
+ ) { error in
+// SentrySDK.capture(error: error)
+
+ print(error)
+ }
+
+ setup()
+
+ }
+
+ func setup() {
+ AppKit.instance.socketConnectionStatusPublisher.receive(on: DispatchQueue.main).sink { [unowned self] status in
+ print("Socket connection status: \(status)")
+ self.socketConnectionManager.socketConnected = (status == .connected)
+
+ }.store(in: &disposeBag)
+ AppKit.instance.logger.setLogging(level: .debug)
+ Sign.instance.setLogging(level: .debug)
+ Networking.instance.setLogging(level: .debug)
+ Relay.instance.setLogging(level: .debug)
+
+ AppKit.instance.authResponsePublisher.sink { (id: RPCID, result: Result<(Session?, [Cacao]), AuthError>) in
+ switch result {
+ case .success((_, _)):
+ AlertPresenter.present(message: "User authenticated", type: .success)
+ case .failure(let error):
+ AlertPresenter.present(message: "User authentication error: \(error)", type: .error)
+
+ }
+ }.store(in: &disposeBag)
+
+ AppKit.instance.SIWEAuthenticationPublisher.sink { result in
+ switch result {
+ case .success((let message, let signature)):
+ AlertPresenter.present(message: "User authenticated", type: .success)
+ case .failure(let error):
+ AlertPresenter.present(message: "User authentication error: \(error)", type: .error)
+ }
+ }.store(in: &disposeBag)
+ }
+
+ var body: some Scene {
+ WindowGroup { [unowned self] in
+ ContentView()
+ .environmentObject(socketConnectionManager)
+ .onOpenURL { url in
+ AppKit.instance.handleDeeplink(url)
+ }
+ .alert(
+ "Response",
+ isPresented: .init(
+ get: { !self.alertMessage.isEmpty },
+ set: { _ in self.alertMessage = "" }
+ )
+ ) {
+ Button("Dismiss", role: .cancel) {}
+ } message: {
+ Text(alertMessage)
+ }
+ .onReceive(AppKit.instance.sessionResponsePublisher, perform: { response in
+ switch response.result {
+ case let .response(value):
+ self.alertMessage = "Session response: \(value.stringRepresentation)"
+ case let .error(error):
+ self.alertMessage = "Session error: \(error)"
+ }
+ })
+ }
+ }
+}
+
+extension AuthRequestParams {
+ static func stub(
+ domain: String = "lab.web3modal.com",
+ chains: [String] = ["eip155:1", "eip155:137"],
+ nonce: String = "32891756",
+ uri: String = "https://lab.web3modal.com",
+ nbf: String? = nil,
+ exp: String? = nil,
+ statement: String? = "I accept the ServiceOrg Terms of Service: https://lab.web3modal.com",
+ requestId: String? = nil,
+ resources: [String]? = nil,
+ methods: [String]? = ["personal_sign", "eth_sendTransaction"]
+ ) -> AuthRequestParams {
+ return try! AuthRequestParams(
+ domain: domain,
+ chains: chains,
+ nonce: nonce,
+ uri: uri,
+ nbf: nbf,
+ exp: exp,
+ statement: statement,
+ requestId: requestId,
+ resources: resources,
+ methods: methods
+ )
+ }
+}
+
diff --git a/Example/AppKitLab/Assets.xcassets/AccentColor.colorset/Contents.json b/Example/AppKitLab/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 000000000..eb8789700
--- /dev/null
+++ b/Example/AppKitLab/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,11 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Contents.json b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
rename to Example/AppKitLab/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
diff --git a/Example/Showcase/Other/Assets.xcassets/Contents.json b/Example/AppKitLab/Assets.xcassets/Contents.json
similarity index 100%
rename from Example/Showcase/Other/Assets.xcassets/Contents.json
rename to Example/AppKitLab/Assets.xcassets/Contents.json
diff --git a/Example/AppKitLab/ComponentLibraryView.swift b/Example/AppKitLab/ComponentLibraryView.swift
new file mode 100644
index 000000000..1a04ce8cd
--- /dev/null
+++ b/Example/AppKitLab/ComponentLibraryView.swift
@@ -0,0 +1,53 @@
+import SwiftUI
+import ReownAppKit
+
+
+struct ComponentLibraryView: View {
+ var body: some View {
+ listView
+ .navigationTitle("Components")
+ }
+
+ var listView: some View {
+ Group {
+#if DEBUG
+ List {
+ NavigationLink(destination: AccountButtonPreviewView()) {
+ Text("AccountButton")
+ }
+ NavigationLink(destination: NetworkButtonPreviewView()) {
+ Text("NetworkButton")
+ }
+ NavigationLink(destination: W3MButtonStylePreviewView()) {
+ Text("W3MButton")
+ }
+ NavigationLink(destination: W3MCardSelectStylePreviewView()) {
+ Text("W3MCardSelect")
+ }
+ NavigationLink(destination: W3MTagPreviewView()) {
+ Text("W3MTag")
+ }
+ NavigationLink(destination: W3MListSelectStylePreviewView()) {
+ Text("W3MListSelect")
+ }
+ NavigationLink(destination: W3MActionEntryStylePreviewView()) {
+ Text("W3MActionEntry")
+ }
+ NavigationLink(destination: QRCodeViewPreviewView()) {
+ Text("QRCode")
+ }
+ NavigationLink(destination: W3MChipButtonStylePreviewView()) {
+ Text("W3MChipButtonStyle")
+ }
+ NavigationLink(destination: W3MListItemButtonStylePreviewView()) {
+ Text("W3MListItemButtonStyle")
+ }
+ NavigationLink(destination: ToastViewPreviewView()) {
+ Text("ToastView")
+ }
+ }
+ .listStyle(.plain)
+#endif
+ }
+ }
+}
diff --git a/Example/AppKitLab/ContentView.swift b/Example/AppKitLab/ContentView.swift
new file mode 100644
index 000000000..b6f44fd9c
--- /dev/null
+++ b/Example/AppKitLab/ContentView.swift
@@ -0,0 +1,60 @@
+import SwiftUI
+import ReownAppKit
+
+struct ContentView: View {
+ @State var showUIComponents: Bool = false
+ @EnvironmentObject var socketConnectionManager: SocketConnectionManager
+
+
+ var body: some View {
+ NavigationView {
+ VStack {
+ Spacer()
+
+ AppKitButton()
+
+ Web3ModalNetworkButton()
+
+ Spacer()
+
+ Button("Personal sign") {
+ Task {
+ do {
+ try await requestPersonalSign()
+ AppKit.instance.launchCurrentWallet()
+ } catch {
+ print("Error occurred: \(error)")
+ }
+ }
+ }
+ .buttonStyle(W3MButtonStyle())
+
+ NavigationLink(destination: ComponentLibraryView(), isActive: $showUIComponents) {
+ Button("UI components") {
+ showUIComponents = true
+ }
+ .buttonStyle(W3MButtonStyle())
+ }
+ }
+ .overlay(
+ HStack {
+ Circle()
+ .fill(socketConnectionManager.socketConnected ? Color.Success100 : Color.Error100)
+ .frame(width: 10, height: 10)
+
+ Text("Socket \(socketConnectionManager.socketConnected ? "Connected" : "Disconnected")")
+ .font(.system(size: 12, weight: .semibold))
+ .foregroundColor(socketConnectionManager.socketConnected ? Color.Success100 : Color.Error100)
+ },
+ alignment: .top
+ )
+ }
+ }
+
+ func requestPersonalSign() async throws {
+
+ guard let address = AppKit.instance.getAddress() else { return }
+ try await AppKit.instance.request(.personal_sign(address: address, message: "Hello there!"))
+
+ }
+}
diff --git a/Example/AppKitLab/DefaultCryptoProvider.swift b/Example/AppKitLab/DefaultCryptoProvider.swift
new file mode 100644
index 000000000..b333f40b3
--- /dev/null
+++ b/Example/AppKitLab/DefaultCryptoProvider.swift
@@ -0,0 +1,24 @@
+import Foundation
+import Web3
+import CryptoSwift
+import WalletConnectSigner
+
+struct DefaultCryptoProvider: CryptoProvider {
+
+ public func recoverPubKey(signature: EthereumSignature, message: Data) throws -> Data {
+ let publicKey = try EthereumPublicKey(
+ message: message.bytes,
+ v: EthereumQuantity(quantity: BigUInt(signature.v)),
+ r: EthereumQuantity(signature.r),
+ s: EthereumQuantity(signature.s)
+ )
+ return Data(publicKey.rawPublicKey)
+ }
+
+ public func keccak256(_ data: Data) -> Data {
+ let digest = SHA3(variant: .keccak256)
+ let hash = digest.calculate(for: [UInt8](data))
+ return Data(hash)
+ }
+
+}
diff --git a/Example/AppKitLab/Example.entitlements b/Example/AppKitLab/Example.entitlements
new file mode 100644
index 000000000..7aa6c890b
--- /dev/null
+++ b/Example/AppKitLab/Example.entitlements
@@ -0,0 +1,18 @@
+
+
+
+
+ com.apple.developer.associated-domains
+
+ applinks:lab.web3modal.com
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.application-groups
+
+ group.com.walletconnect.web3modal
+
+ com.apple.security.files.user-selected.read-only
+
+
+
diff --git a/Example/AppKitLab/Info.plist b/Example/AppKitLab/Info.plist
new file mode 100644
index 000000000..029d17566
--- /dev/null
+++ b/Example/AppKitLab/Info.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ PROJECT_ID
+ $(PROJECT_ID)
+
+
diff --git a/Example/DApp/Common/InputConfig.swift b/Example/AppKitLab/InputConfig.swift
similarity index 100%
rename from Example/DApp/Common/InputConfig.swift
rename to Example/AppKitLab/InputConfig.swift
diff --git a/Sources/WalletConnectModal/Resources/Assets.xcassets/Contents.json b/Example/AppKitLab/Preview Content/Preview Assets.xcassets/Contents.json
similarity index 100%
rename from Sources/WalletConnectModal/Resources/Assets.xcassets/Contents.json
rename to Example/AppKitLab/Preview Content/Preview Assets.xcassets/Contents.json
diff --git a/Example/AppKitLab/WCSocketFactory.swift b/Example/AppKitLab/WCSocketFactory.swift
new file mode 100644
index 000000000..fc929b24e
--- /dev/null
+++ b/Example/AppKitLab/WCSocketFactory.swift
@@ -0,0 +1,14 @@
+import Foundation
+import WalletConnectRelay
+import Starscream
+
+extension WebSocket: WebSocketConnecting { }
+
+struct DefaultSocketFactory: WebSocketFactory {
+ func create(with url: URL) -> WebSocketConnecting {
+ let socket = WebSocket(url: url)
+ let queue = DispatchQueue(label: "com.walletconnect.sdk.sockets", attributes: .concurrent)
+ socket.callbackQueue = queue
+ return socket
+ }
+}
diff --git a/Example/DApp/AppDelegate.swift b/Example/DApp/AppDelegate.swift
index 1bccf58bf..acc22e14a 100644
--- a/Example/DApp/AppDelegate.swift
+++ b/Example/DApp/AppDelegate.swift
@@ -1,4 +1,5 @@
import UIKit
+import WalletConnectSign
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
@@ -7,6 +8,16 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
return true
}
+ func applicationWillEnterForeground(_ application: UIApplication) {
+ ProfilingService.instance.send(logMessage: .init(message: "AppDelegate: application will enter foreground"))
+ // Additional code to handle entering the foreground
+ }
+
+ func applicationDidBecomeActive(_ application: UIApplication) {
+ ProfilingService.instance.send(logMessage: .init(message: "AppDelegate: application did become active"))
+ // Additional code to handle becoming active
+ }
+
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
@@ -15,10 +26,30 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
+ func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([any UIUserActivityRestoring]?) -> Void) async -> Bool {
+ ProfilingService.instance.send(logMessage: .init(message: "AppDelegate: will try to dispatch envelope: \(String(describing: userActivity.webpageURL))"))
+ guard let url = userActivity.webpageURL,
+ let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else {
+ return true
+ }
+ try! Sign.instance.dispatchEnvelope(url.absoluteString)
+
+ return true
+ }
+
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
+ func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
+ // Log the event of opening the app via URL
+ ProfilingService.instance.send(logMessage: .init(message: "AppDelegate: app opened by URL: \(url.absoluteString)"))
+
+ // Handle the URL appropriately
+ try! Sign.instance.dispatchEnvelope(url.absoluteString)
+
+ return true
+ }
}
diff --git a/Example/DApp/ApplicationLayer/Application.swift b/Example/DApp/ApplicationLayer/Application.swift
index feba5e373..e4c9d7c63 100644
--- a/Example/DApp/ApplicationLayer/Application.swift
+++ b/Example/DApp/ApplicationLayer/Application.swift
@@ -4,5 +4,4 @@ import WalletConnectUtils
final class Application {
var uri: WalletConnectURI?
- var requestSent = false
}
diff --git a/Example/DApp/Assets.xcassets/solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.imageset/Contents.json b/Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/Contents.json
similarity index 100%
rename from Example/DApp/Assets.xcassets/solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.imageset/Contents.json
rename to Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/Contents.json
diff --git a/Example/DApp/Assets.xcassets/solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.imageset/solana (1).png b/Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/solana (1).png
similarity index 100%
rename from Example/DApp/Assets.xcassets/solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.imageset/solana (1).png
rename to Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/solana (1).png
diff --git a/Example/DApp/Common/ActivityIndicatorManager.swift b/Example/DApp/Common/ActivityIndicatorManager.swift
new file mode 100644
index 000000000..2405ea052
--- /dev/null
+++ b/Example/DApp/Common/ActivityIndicatorManager.swift
@@ -0,0 +1,42 @@
+import UIKit
+
+class ActivityIndicatorManager {
+ static let shared = ActivityIndicatorManager()
+ private var activityIndicator: UIActivityIndicatorView?
+ private let serialQueue = DispatchQueue(label: "com.yourapp.activityIndicatorManager")
+
+ private init() {}
+
+ func start() {
+ serialQueue.async {
+ self.stopInternal()
+
+ DispatchQueue.main.async {
+ guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
+ let window = windowScene.windows.first(where: { $0.isKeyWindow }) else { return }
+
+ let activityIndicator = UIActivityIndicatorView(style: .large)
+ activityIndicator.center = window.center
+ activityIndicator.color = .white
+ activityIndicator.startAnimating()
+ window.addSubview(activityIndicator)
+
+ self.activityIndicator = activityIndicator
+ }
+ }
+ }
+
+ func stop() {
+ serialQueue.async {
+ self.stopInternal()
+ }
+ }
+
+ private func stopInternal() {
+ DispatchQueue.main.sync {
+ self.activityIndicator?.stopAnimating()
+ self.activityIndicator?.removeFromSuperview()
+ self.activityIndicator = nil
+ }
+ }
+}
diff --git a/Example/DApp/Constants.swift b/Example/DApp/Constants.swift
new file mode 100644
index 000000000..36eb6a4d3
--- /dev/null
+++ b/Example/DApp/Constants.swift
@@ -0,0 +1,6 @@
+
+import Foundation
+
+enum Constants {
+ static let groupIdentifier = "group.com.walletconnect.dapp"
+}
diff --git a/Example/DApp/DApp.entitlements b/Example/DApp/DApp.entitlements
new file mode 100644
index 000000000..787b67d9b
--- /dev/null
+++ b/Example/DApp/DApp.entitlements
@@ -0,0 +1,14 @@
+
+
+
+
+ com.apple.developer.associated-domains
+
+ applinks:lab.web3modal.com
+
+ com.apple.security.application-groups
+
+ group.com.walletconnect.dapp
+
+
+
diff --git a/Example/DApp/DAppRelease.entitlements b/Example/DApp/DAppRelease.entitlements
new file mode 100644
index 000000000..787b67d9b
--- /dev/null
+++ b/Example/DApp/DAppRelease.entitlements
@@ -0,0 +1,14 @@
+
+
+
+
+ com.apple.developer.associated-domains
+
+ applinks:lab.web3modal.com
+
+ com.apple.security.application-groups
+
+ group.com.walletconnect.dapp
+
+
+
diff --git a/Example/DApp/Info.plist b/Example/DApp/Info.plist
index 20e5043da..1f05fe57e 100644
--- a/Example/DApp/Info.plist
+++ b/Example/DApp/Info.plist
@@ -2,6 +2,8 @@
+ MIXPANEL_TOKEN
+ $(MIXPANEL_TOKEN)
CFBundleURLTypes
diff --git a/Example/DApp/Modules/Auth/AuthInteractor.swift b/Example/DApp/Modules/Auth/AuthInteractor.swift
deleted file mode 100644
index ffddc61dd..000000000
--- a/Example/DApp/Modules/Auth/AuthInteractor.swift
+++ /dev/null
@@ -1,3 +0,0 @@
-import Foundation
-
-final class AuthInteractor {}
diff --git a/Example/DApp/Modules/Auth/AuthModule.swift b/Example/DApp/Modules/Auth/AuthModule.swift
deleted file mode 100644
index 9252f89e3..000000000
--- a/Example/DApp/Modules/Auth/AuthModule.swift
+++ /dev/null
@@ -1,16 +0,0 @@
-import SwiftUI
-
-final class AuthModule {
- @discardableResult
- static func create(app: Application) -> UIViewController {
- let router = AuthRouter(app: app)
- let interactor = AuthInteractor()
- let presenter = AuthPresenter(interactor: interactor, router: router)
- let view = AuthView().environmentObject(presenter)
- let viewController = SceneViewController(viewModel: presenter, content: view)
-
- router.viewController = viewController
-
- return viewController
- }
-}
diff --git a/Example/DApp/Modules/Auth/AuthPresenter.swift b/Example/DApp/Modules/Auth/AuthPresenter.swift
deleted file mode 100644
index 8e01e32e6..000000000
--- a/Example/DApp/Modules/Auth/AuthPresenter.swift
+++ /dev/null
@@ -1,116 +0,0 @@
-import UIKit
-import Combine
-
-import Auth
-
-final class AuthPresenter: ObservableObject {
- enum SigningState {
- case none
- case signed(Cacao)
- case error(Error)
- }
-
- private let interactor: AuthInteractor
- private let router: AuthRouter
-
- @Published var qrCodeImageData: Data?
- @Published var signingState = SigningState.none
- @Published var showSigningState = false
-
- private var walletConnectUri: WalletConnectURI?
-
- private var subscriptions = Set()
-
- init(
- interactor: AuthInteractor,
- router: AuthRouter
- ) {
- defer {
- Task {
- await setupInitialState()
- }
- }
- self.interactor = interactor
- self.router = router
- }
-
- func onAppear() {
- generateQR()
- }
-
- func copyUri() {
- UIPasteboard.general.string = walletConnectUri?.absoluteString
- }
-
- func connectWallet() {
- if let walletConnectUri {
- let walletUri = URL(string: "walletapp://wc?uri=\(walletConnectUri.deeplinkUri.removingPercentEncoding!)")!
- DispatchQueue.main.async {
- UIApplication.shared.open(walletUri)
- }
- }
- }
-}
-
-// MARK: - Private functions
-extension AuthPresenter {
- @MainActor
- private func setupInitialState() {
- Auth.instance.authResponsePublisher.sink { [weak self] (_, result) in
- switch result {
- case .success(let cacao):
- self?.signingState = .signed(cacao)
- self?.generateQR()
- self?.showSigningState.toggle()
-
- case .failure(let error):
- self?.signingState = .error(error)
- self?.showSigningState.toggle()
- }
- }
- .store(in: &subscriptions)
- }
-
- private func generateQR() {
- Task { @MainActor in
- let uri = try! await Pair.instance.create()
- walletConnectUri = uri
- try await Auth.instance.request(.stub(), topic: uri.topic)
- let qrCodeImage = QRCodeGenerator.generateQRCode(from: uri.absoluteString)
- DispatchQueue.main.async {
- self.qrCodeImageData = qrCodeImage.pngData()
- }
- }
- }
-}
-
-// MARK: - SceneViewModel
-extension AuthPresenter: SceneViewModel {}
-
-// MARK: - Auth request stub
-private extension RequestParams {
- static func stub(
- domain: String = "service.invalid",
- chainId: String = "eip155:1",
- nonce: String = "32891756",
- aud: String = "https://service.invalid/login",
- nbf: String? = nil,
- exp: String? = nil,
- statement: String? = "I accept the ServiceOrg Terms of Service: https://service.invalid/tos",
- requestId: String? = nil,
- resources: [String]? = ["ipfs://bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq/", "https://example.com/my-web2-claim.json"]
- ) -> RequestParams {
- return RequestParams(
- domain: domain,
- chainId: chainId,
- nonce: nonce,
- aud: aud,
- nbf: nbf,
- exp: exp,
- statement: statement,
- requestId: requestId,
- resources: resources
- )
- }
-}
-
diff --git a/Example/DApp/Modules/Auth/AuthRouter.swift b/Example/DApp/Modules/Auth/AuthRouter.swift
deleted file mode 100644
index 3caacfd38..000000000
--- a/Example/DApp/Modules/Auth/AuthRouter.swift
+++ /dev/null
@@ -1,16 +0,0 @@
-import UIKit
-
-final class AuthRouter {
- weak var viewController: UIViewController!
-
- private let app: Application
-
- init(app: Application) {
- self.app = app
- }
-
- func dismiss() {
- viewController.dismiss(animated: true)
- UIApplication.shared.open(URL(string: "showcase://")!)
- }
-}
diff --git a/Example/DApp/Modules/Auth/AuthView.swift b/Example/DApp/Modules/Auth/AuthView.swift
deleted file mode 100644
index 8e15bacc0..000000000
--- a/Example/DApp/Modules/Auth/AuthView.swift
+++ /dev/null
@@ -1,140 +0,0 @@
-import SwiftUI
-
-struct AuthView: View {
- @EnvironmentObject var presenter: AuthPresenter
-
- var body: some View {
- NavigationStack {
- ZStack {
- Color(red: 25/255, green: 26/255, blue: 26/255)
- .ignoresSafeArea()
-
- VStack {
- ZStack {
- RoundedRectangle(cornerRadius: 25)
- .fill(.white)
- .aspectRatio(1, contentMode: .fit)
- .padding(20)
-
- if let data = presenter.qrCodeImageData {
- let qrCodeImage = UIImage(data: data) ?? UIImage()
- Image(uiImage: qrCodeImage)
- .resizable()
- .aspectRatio(1, contentMode: .fit)
- .padding(40)
- }
- }
-
- Button {
- presenter.connectWallet()
- } label: {
- Text("Connect Sample Wallet")
- .font(.system(size: 16, weight: .semibold))
- .foregroundColor(.white)
- .padding(.horizontal, 16)
- .padding(.vertical, 10)
- .background(Color(red: 95/255, green: 159/255, blue: 248/255))
- .cornerRadius(16)
- }
-
- Button {
- presenter.copyUri()
- } label: {
- HStack {
- Image("copy")
- Text("Copy link")
- .font(.system(size: 14, weight: .semibold))
- .foregroundColor(Color(red: 0.58, green: 0.62, blue: 0.62))
- }
- }
- .padding(.top, 16)
-
- Spacer()
- }
- }
- .navigationTitle("Auth")
- .navigationBarTitleDisplayMode(.inline)
- .toolbarColorScheme(.dark, for: .navigationBar)
- .toolbarBackground(.visible, for: .navigationBar)
- .toolbarBackground(
- Color(red: 25/255, green: 26/255, blue: 26/255),
- for: .navigationBar
- )
- .onAppear {
- presenter.onAppear()
- }
- .sheet(isPresented: $presenter.showSigningState) {
- ZStack {
- Color(red: 25/255, green: 26/255, blue: 26/255)
- .ignoresSafeArea()
-
- VStack {
- HStack {
- RoundedRectangle(cornerRadius: 2)
- .fill(.gray.opacity(0.5))
- .frame(width: 30, height: 4)
-
- }
- .padding(20)
-
- Image("profile")
- .resizable()
- .frame(width: 64, height: 64)
-
- switch presenter.signingState {
- case .error(let error):
- Text(error.localizedDescription)
- .font(.system(size: 16, weight: .semibold))
- .foregroundColor(.white)
- .padding(.horizontal, 16)
- .padding(.vertical, 10)
- .background(.green)
- .cornerRadius(16)
- .padding(.top, 16)
-
- case .signed(let cacao):
- HStack {
- Text(cacao.p.iss.split(separator: ":").last ?? "")
- .lineLimit(1)
- .truncationMode(.middle)
- .frame(width: 135)
- .font(.system(size: 24, weight: .semibold))
- .foregroundColor(Color(red: 0.89, green: 0.91, blue: 0.91))
-
- Button {
- UIPasteboard.general.string = String(cacao.p.iss.split(separator: ":").last ?? "")
- } label: {
- Image("copy")
- .resizable()
- .frame(width: 14, height: 14)
- }
- }
-
- Text("Authenticated")
- .font(.system(size: 16, weight: .semibold))
- .foregroundColor(.white)
- .padding(.horizontal, 16)
- .padding(.vertical, 10)
- .background(.green)
- .cornerRadius(16)
- .padding(.top, 16)
-
- case .none:
- EmptyView()
- }
-
- Spacer()
- }
- }
- .presentationDetents([.medium])
- }
- }
- }
-}
-
-struct AuthView_Previews: PreviewProvider {
- static var previews: some View {
- AuthView()
- }
-}
-
diff --git a/Example/DApp/Modules/Configuration/ConfigModule.swift b/Example/DApp/Modules/Configuration/ConfigModule.swift
new file mode 100644
index 000000000..df4037810
--- /dev/null
+++ b/Example/DApp/Modules/Configuration/ConfigModule.swift
@@ -0,0 +1,15 @@
+import SwiftUI
+
+final class ConfigModule {
+ @discardableResult
+ static func create(app: Application) -> UIViewController {
+ let router = ConfigRouter(app: app)
+ let presenter = ConfigPresenter(router: router)
+ let view = ConfigView().environmentObject(presenter)
+
+ let viewController = SceneViewController(viewModel: presenter, content: view)
+ router.viewController = viewController
+
+ return viewController
+ }
+}
diff --git a/Example/DApp/Modules/Configuration/ConfigPresenter.swift b/Example/DApp/Modules/Configuration/ConfigPresenter.swift
new file mode 100644
index 000000000..0872c7c25
--- /dev/null
+++ b/Example/DApp/Modules/Configuration/ConfigPresenter.swift
@@ -0,0 +1,41 @@
+import UIKit
+import Combine
+
+import WalletConnectSign
+
+final class ConfigPresenter: ObservableObject, SceneViewModel {
+
+
+ private let router: ConfigRouter
+
+ var clientId: String {
+ guard let clientId = try? Networking.interactor.getClientId() else { return .empty }
+ return clientId
+ }
+
+ init(
+ router: ConfigRouter
+ ) {
+ defer { setupInitialState() }
+ self.router = router
+ }
+
+ func onAppear() {
+
+ }
+
+ private func setupInitialState() {
+
+ }
+
+ func cleanLinkModeSupportedWalletsCache() {
+ let userDefaults = UserDefaults(suiteName: Constants.groupIdentifier)!
+ let prefix = "com.walletconnect.sdk.linkModeLinks"
+ let keys = userDefaults.dictionaryRepresentation().keys
+
+ for key in keys where key.hasPrefix(prefix) {
+ userDefaults.removeObject(forKey: key)
+ }
+ }
+
+}
diff --git a/Example/DApp/Modules/Configuration/ConfigRouter.swift b/Example/DApp/Modules/Configuration/ConfigRouter.swift
new file mode 100644
index 000000000..c3e5283f1
--- /dev/null
+++ b/Example/DApp/Modules/Configuration/ConfigRouter.swift
@@ -0,0 +1,14 @@
+
+import Foundation
+import UIKit
+import WalletConnectSign
+
+final class ConfigRouter {
+ weak var viewController: UIViewController!
+
+ private let app: Application
+
+ init(app: Application) {
+ self.app = app
+ }
+}
diff --git a/Example/DApp/Modules/Configuration/ConfigView.swift b/Example/DApp/Modules/Configuration/ConfigView.swift
new file mode 100644
index 000000000..35d061ddf
--- /dev/null
+++ b/Example/DApp/Modules/Configuration/ConfigView.swift
@@ -0,0 +1,110 @@
+import SwiftUI
+
+struct ConfigView: View {
+ @EnvironmentObject var presenter: ConfigPresenter
+ @State private var copyAlert: Bool = false
+ @State private var cacheCleanAlert: Bool = false
+
+ var body: some View {
+ NavigationStack {
+ ZStack {
+ Color(red: 25/255, green: 26/255, blue: 26/255)
+ .ignoresSafeArea()
+
+ ScrollView {
+ VStack(spacing: 12) {
+ // Clean Cache Button
+ Button(action: {
+ presenter.cleanLinkModeSupportedWalletsCache()
+ cacheCleanAlert = true
+ }) {
+ VStack(alignment: .leading, spacing: 4) {
+ HStack(spacing: 6) {
+ Text("Clean Cache")
+ .multilineTextAlignment(.leading)
+ .foregroundColor(.white)
+ .font(.system(size: 16, weight: .semibold))
+
+ Image(systemName: "trash")
+ .foregroundColor(.white)
+
+ Spacer()
+ }
+ .padding(.horizontal, 12)
+ .padding(.top, 16)
+
+ Text("Clean link mode supported wallets cache")
+ .multilineTextAlignment(.leading)
+ .foregroundColor(.white.opacity(0.7))
+ .font(.system(size: 14))
+ .padding(.horizontal, 12)
+ .padding(.bottom, 16)
+ }
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255).opacity(0.2).cornerRadius(12))
+ }
+ .frame(maxWidth: .infinity)
+ .padding(.horizontal, 12)
+ .padding(.top, 10)
+
+ // Client ID Row
+ Button(action: {
+ UIPasteboard.general.string = presenter.clientId
+ copyAlert = true
+ }) {
+ VStack(alignment: .leading, spacing: 4) {
+ HStack(spacing: 6) {
+ Text("Client ID")
+ .multilineTextAlignment(.leading)
+ .foregroundColor(.white)
+ .font(.system(size: 16, weight: .semibold))
+
+ Image(systemName: "doc.on.doc")
+ .foregroundColor(.white)
+
+ Spacer()
+ }
+ .padding(.horizontal, 12)
+ .padding(.top, 16)
+
+ Text(presenter.clientId)
+ .multilineTextAlignment(.leading)
+ .foregroundColor(.white.opacity(0.7))
+ .font(.system(size: 14))
+ .padding(.horizontal, 12)
+ .padding(.bottom, 16)
+ }
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255).opacity(0.2).cornerRadius(12))
+ }
+ .frame(maxWidth: .infinity)
+ .padding(.horizontal, 12)
+ }
+ .padding(12)
+ }
+ .padding(.bottom, 76)
+ .onAppear {
+ presenter.onAppear()
+ }
+ }
+ .navigationTitle("Configuration")
+ .navigationBarTitleDisplayMode(.inline)
+ .toolbarColorScheme(.dark, for: .navigationBar)
+ .toolbarBackground(.visible, for: .navigationBar)
+ .toolbarBackground(
+ Color(red: 25/255, green: 26/255, blue: 26/255),
+ for: .navigationBar
+ )
+ }
+ .alert("Cache cleaned successfully", isPresented: $cacheCleanAlert) {
+ Button("OK", role: .cancel) { }
+ }
+ .alert("Client ID copied to clipboard", isPresented: $copyAlert) {
+ Button("OK", role: .cancel) { }
+ }
+ }
+}
+
+struct ConfigView_Previews: PreviewProvider {
+ static var previews: some View {
+ ConfigView()
+ }
+}
diff --git a/Example/DApp/Modules/Main/MainInteractor.swift b/Example/DApp/Modules/Main/MainInteractor.swift
deleted file mode 100644
index a3954796d..000000000
--- a/Example/DApp/Modules/Main/MainInteractor.swift
+++ /dev/null
@@ -1,3 +0,0 @@
-import Foundation
-
-final class MainInteractor {}
diff --git a/Example/DApp/Modules/Main/MainModule.swift b/Example/DApp/Modules/Main/MainModule.swift
deleted file mode 100644
index 67a9d6060..000000000
--- a/Example/DApp/Modules/Main/MainModule.swift
+++ /dev/null
@@ -1,15 +0,0 @@
-import SwiftUI
-
-final class MainModule {
- @discardableResult
- static func create(app: Application) -> UIViewController {
- let router = MainRouter(app: app)
- let interactor = MainInteractor()
- let presenter = MainPresenter(router: router, interactor: interactor)
- let viewController = MainViewController(presenter: presenter)
-
- router.viewController = viewController
-
- return viewController
- }
-}
diff --git a/Example/DApp/Modules/Main/MainPresenter.swift b/Example/DApp/Modules/Main/MainPresenter.swift
deleted file mode 100644
index c3c7d47ee..000000000
--- a/Example/DApp/Modules/Main/MainPresenter.swift
+++ /dev/null
@@ -1,32 +0,0 @@
-import UIKit
-import Combine
-
-final class MainPresenter {
- private let interactor: MainInteractor
- private let router: MainRouter
- private var disposeBag = Set()
-
- var tabs: [TabPage] {
- return TabPage.allCases
- }
-
- var viewControllers: [UIViewController] {
- return [
- router.signViewController(),
- router.authViewController()
- ]
- }
-
- init(router: MainRouter, interactor: MainInteractor) {
- defer {
- setupInitialState()
- }
- self.router = router
- self.interactor = interactor
- }
-}
-
-// MARK: - Private functions
-extension MainPresenter {
- private func setupInitialState() {}
-}
diff --git a/Example/DApp/Modules/Main/MainRouter.swift b/Example/DApp/Modules/Main/MainRouter.swift
deleted file mode 100644
index 4b3fef3de..000000000
--- a/Example/DApp/Modules/Main/MainRouter.swift
+++ /dev/null
@@ -1,19 +0,0 @@
-import UIKit
-
-final class MainRouter {
- weak var viewController: UIViewController!
-
- private let app: Application
-
- init(app: Application) {
- self.app = app
- }
-
- func signViewController() -> UIViewController {
- return SignModule.create(app: app)
- }
-
- func authViewController() -> UIViewController {
- return AuthModule.create(app: app)
- }
-}
diff --git a/Example/DApp/Modules/Main/MainViewController.swift b/Example/DApp/Modules/Main/MainViewController.swift
deleted file mode 100644
index 539b2a789..000000000
--- a/Example/DApp/Modules/Main/MainViewController.swift
+++ /dev/null
@@ -1,43 +0,0 @@
-import UIKit
-import Sentry
-
-enum LoginError: Error {
- case wrongUser(id: String)
- case wrongPassword
-}
-
-final class MainViewController: UITabBarController {
-
- private let presenter: MainPresenter
-
- init(presenter: MainPresenter) {
- self.presenter = presenter
- super.init(nibName: nil, bundle: nil)
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupTabs()
- }
-
- private func setupTabs() {
- let viewControllers = presenter.viewControllers
-
- for (index, viewController) in viewControllers.enumerated() {
- let model = presenter.tabs[index]
- let item = UITabBarItem()
- item.title = model.title
- item.image = model.icon
- item.isEnabled = TabPage.enabledTabs.contains(model)
- viewController.tabBarItem = item
- viewController.view.backgroundColor = .w_background
- }
-
- self.viewControllers = viewControllers
- self.selectedIndex = TabPage.selectedIndex
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-}
diff --git a/Example/DApp/Modules/Main/Model/TabPage.swift b/Example/DApp/Modules/Main/Model/TabPage.swift
deleted file mode 100644
index faec2ba34..000000000
--- a/Example/DApp/Modules/Main/Model/TabPage.swift
+++ /dev/null
@@ -1,32 +0,0 @@
-import UIKit
-
-enum TabPage: CaseIterable {
- case sign
- case auth
-
- var title: String {
- switch self {
- case .sign:
- return "Sign"
- case .auth:
- return "Auth"
- }
- }
-
- var icon: UIImage {
- switch self {
- case .sign:
- return UIImage(named: "pen")!
- case .auth:
- return UIImage(named: "auth")!
- }
- }
-
- static var selectedIndex: Int {
- return 0
- }
-
- static var enabledTabs: [TabPage] {
- return [.sign, .auth]
- }
-}
diff --git a/Example/DApp/Modules/Sign/NewPairing/NewPairingRouter.swift b/Example/DApp/Modules/Sign/NewPairing/NewPairingRouter.swift
index 51fc5b2f2..89c0ea8a7 100644
--- a/Example/DApp/Modules/Sign/NewPairing/NewPairingRouter.swift
+++ b/Example/DApp/Modules/Sign/NewPairing/NewPairingRouter.swift
@@ -11,6 +11,5 @@ final class NewPairingRouter {
func dismiss() {
viewController.dismiss(animated: true)
- UIApplication.shared.open(URL(string: "showcase://")!)
}
}
diff --git a/Example/DApp/Modules/Sign/SessionAccount/SessionAccountPresenter.swift b/Example/DApp/Modules/Sign/SessionAccount/SessionAccountPresenter.swift
index 15b0b7e74..e89ea8a8e 100644
--- a/Example/DApp/Modules/Sign/SessionAccount/SessionAccountPresenter.swift
+++ b/Example/DApp/Modules/Sign/SessionAccount/SessionAccountPresenter.swift
@@ -12,7 +12,10 @@ final class SessionAccountPresenter: ObservableObject {
@Published var showError = false
@Published var errorMessage = String.empty
@Published var showRequestSent = false
-
+ @Published var requesting = false
+ var lastRequest: Request?
+
+
private let interactor: SessionAccountInteractor
private let router: SessionAccountRouter
private let session: Session
@@ -41,14 +44,21 @@ final class SessionAccountPresenter: ObservableObject {
do {
let requestParams = try getRequest(for: method)
- let request = Request(topic: session.topic, method: method, params: requestParams, chainId: Blockchain(sessionAccount.chain)!)
+ let ttl: TimeInterval = 300
+ let request = try Request(topic: session.topic, method: method, params: requestParams, chainId: Blockchain(sessionAccount.chain)!, ttl: ttl)
Task {
do {
+ ActivityIndicatorManager.shared.start()
try await Sign.instance.request(params: request)
+ lastRequest = request
+ ActivityIndicatorManager.shared.stop()
+ requesting = true
DispatchQueue.main.async { [weak self] in
self?.openWallet()
}
} catch {
+ ActivityIndicatorManager.shared.stop()
+ requesting = false
showError.toggle()
errorMessage = error.localizedDescription
}
@@ -70,13 +80,14 @@ extension SessionAccountPresenter {
Sign.instance.sessionResponsePublisher
.receive(on: DispatchQueue.main)
.sink { [unowned self] response in
+ requesting = false
presentResponse(response: response)
}
.store(in: &subscriptions)
}
private func getRequest(for method: String) throws -> AnyCodable {
- let account = session.namespaces.first!.value.accounts.first!.absoluteString
+ let account = session.namespaces.first!.value.accounts.first!.address
if method == "eth_sendTransaction" {
let tx = Stub.tx
return AnyCodable(tx)
diff --git a/Example/DApp/Modules/Sign/SessionAccount/SessionAccountView.swift b/Example/DApp/Modules/Sign/SessionAccount/SessionAccountView.swift
index 1b8a3ebb8..939a9edb6 100644
--- a/Example/DApp/Modules/Sign/SessionAccount/SessionAccountView.swift
+++ b/Example/DApp/Modules/Sign/SessionAccount/SessionAccountView.swift
@@ -8,9 +8,11 @@ struct SessionAccountView: View {
var body: some View {
NavigationStack {
ZStack {
+
Color(red: 25/255, green: 26/255, blue: 26/255)
.ignoresSafeArea()
-
+
+
ScrollView {
VStack(spacing: 12) {
networkView(title: String(presenter.sessionAccount.chain.split(separator: ":").first ?? ""))
@@ -21,6 +23,14 @@ struct SessionAccountView: View {
}
.padding(12)
}
+
+ if presenter.requesting {
+ loadingView
+ .frame(width: 200, height: 200)
+ .background(Color.gray.opacity(0.95))
+ .cornerRadius(20)
+ .shadow(radius: 10)
+ }
}
.navigationTitle(presenter.sessionAccount.chain)
.navigationBarTitleDisplayMode(.inline)
@@ -179,7 +189,18 @@ struct SessionAccountView: View {
}
}
}
-
+
+ private var loadingView: some View {
+ VStack {
+ ProgressView()
+ .progressViewStyle(CircularProgressViewStyle(tint: .black))
+ .scaleEffect(1.5)
+ Text("Request sent, waiting for response")
+ .foregroundColor(.white)
+ .padding(.top, 20)
+ }
+ }
+
private func responseView(response: Response) -> some View {
ZStack {
RoundedRectangle(cornerRadius: 16)
@@ -209,14 +230,14 @@ struct SessionAccountView: View {
.padding(12)
Spacer()
-
- let record = Sign.instance.getSessionRequestRecord(id: response.id)!
- Text(record.request.method)
- .font(
- Font.system(size: 14, weight: .medium)
- )
- .foregroundColor(Color(red: 0.58, green: 0.62, blue: 0.62))
- .padding(12)
+ if let lastRequest = presenter.lastRequest {
+ Text(lastRequest.method)
+ .font(
+ Font.system(size: 14, weight: .medium)
+ )
+ .foregroundColor(Color(red: 0.58, green: 0.62, blue: 0.62))
+ .padding(12)
+ }
}
ZStack {
diff --git a/Example/DApp/Modules/Sign/SignInteractor.swift b/Example/DApp/Modules/Sign/SignInteractor.swift
index 8fa7d0e2b..8c35d79c1 100644
--- a/Example/DApp/Modules/Sign/SignInteractor.swift
+++ b/Example/DApp/Modules/Sign/SignInteractor.swift
@@ -6,8 +6,7 @@ enum Proposal {
static let requiredNamespaces: [String: ProposalNamespace] = [
"eip155": ProposalNamespace(
chains: [
- Blockchain("eip155:1")!,
- Blockchain("eip155:137")!
+ Blockchain("eip155:1")!
],
methods: [
"eth_sendTransaction",
@@ -20,12 +19,22 @@ enum Proposal {
static let optionalNamespaces: [String: ProposalNamespace] = [
"solana": ProposalNamespace(
chains: [
- Blockchain("solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ")!
+ Blockchain("solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp")!
],
methods: [
"solana_signMessage",
"solana_signTransaction"
], events: []
+ ),
+ "eip155": ProposalNamespace(
+ chains: [
+ Blockchain("eip155:137")!
+ ],
+ methods: [
+ "eth_sendTransaction",
+ "personal_sign",
+ "eth_signTypedData"
+ ], events: []
)
]
}
diff --git a/Example/DApp/Modules/Sign/SignPresenter.swift b/Example/DApp/Modules/Sign/SignPresenter.swift
index b42d2663c..c16bbe68c 100644
--- a/Example/DApp/Modules/Sign/SignPresenter.swift
+++ b/Example/DApp/Modules/Sign/SignPresenter.swift
@@ -1,7 +1,7 @@
import UIKit
import Combine
-import Web3Modal
+import ReownAppKit
import WalletConnectSign
final class SignPresenter: ObservableObject {
@@ -15,7 +15,7 @@ final class SignPresenter: ObservableObject {
let chains = [
Chain(name: "Ethereum", id: "eip155:1"),
Chain(name: "Polygon", id: "eip155:137"),
- Chain(name: "Solana", id: "solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ")
+ Chain(name: "Solana", id: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp")
]
private let interactor: SignInteractor
@@ -44,35 +44,94 @@ final class SignPresenter: ObservableObject {
func connectWalletWithW3M() {
Task {
- Web3Modal.set(sessionParams: .init(
+ AppKit.set(sessionParams: .init(
requiredNamespaces: Proposal.requiredNamespaces,
optionalNamespaces: Proposal.optionalNamespaces
))
}
- Web3Modal.present(from: nil)
+ AppKit.present(from: nil)
}
-
+
@MainActor
- func connectWalletWithSign() {
+ func connectWalletWithSessionPropose() {
Task {
- let uri = try await Pair.instance.create()
- walletConnectUri = uri
- try await Sign.instance.connect(
- requiredNamespaces: Proposal.requiredNamespaces,
- optionalNamespaces: Proposal.optionalNamespaces,
- topic: uri.topic
- )
- router.presentNewPairing(walletConnectUri: uri)
+ do {
+ ActivityIndicatorManager.shared.start()
+ walletConnectUri = try await Sign.instance.connect(
+ requiredNamespaces: Proposal.requiredNamespaces,
+ optionalNamespaces: Proposal.optionalNamespaces
+ )
+ ActivityIndicatorManager.shared.stop()
+ router.presentNewPairing(walletConnectUri: walletConnectUri!)
+ } catch {
+ ActivityIndicatorManager.shared.stop()
+ }
}
}
-
+
+ @MainActor
+ func connectWalletWithSessionAuthenticate() {
+ Task {
+ do {
+ ActivityIndicatorManager.shared.start()
+ let uri = try await Sign.instance.authenticate(.stub())
+ walletConnectUri = uri
+ ActivityIndicatorManager.shared.stop()
+ router.presentNewPairing(walletConnectUri: walletConnectUri!)
+ } catch {
+ ActivityIndicatorManager.shared.stop()
+ }
+ }
+ }
+
+ @MainActor
+ func connectWalletWithSessionAuthenticateSIWEOnly() {
+ Task {
+ do {
+ ActivityIndicatorManager.shared.start()
+ let uri = try await Sign.instance.authenticate(.stub(methods: ["personal_sign"]))
+ walletConnectUri = uri
+ ActivityIndicatorManager.shared.stop()
+ router.presentNewPairing(walletConnectUri: walletConnectUri!)
+ } catch {
+ ActivityIndicatorManager.shared.stop()
+ }
+ }
+ }
+
+ @MainActor
+ func connectWalletWithSessionAuthenticateLinkMode() {
+ Task {
+ do {
+ ActivityIndicatorManager.shared.start()
+ if let pairingUri = try await Sign.instance.authenticate(.stub(methods: ["personal_sign"]), walletUniversalLink: "https://lab.web3modal.com/wallet") {
+ walletConnectUri = pairingUri
+ ActivityIndicatorManager.shared.stop()
+ router.presentNewPairing(walletConnectUri: walletConnectUri!)
+ }
+ } catch {
+ AlertPresenter.present(message: error.localizedDescription, type: .error)
+ ActivityIndicatorManager.shared.stop()
+ }
+ }
+ }
+
+ @MainActor
+ func openConfiguration() {
+ router.openConfig()
+ }
+
+ @MainActor
func disconnect() {
if let session {
Task { @MainActor in
do {
+ ActivityIndicatorManager.shared.start()
try await Sign.instance.disconnect(topic: session.topic)
+ ActivityIndicatorManager.shared.stop()
accountsDetails.removeAll()
} catch {
+ ActivityIndicatorManager.shared.stop()
showError.toggle()
errorMessage = error.localizedDescription
}
@@ -90,20 +149,62 @@ final class SignPresenter: ObservableObject {
// MARK: - Private functions
extension SignPresenter {
private func setupInitialState() {
- Sign.instance.sessionSettlePublisher
- .receive(on: DispatchQueue.main)
- .sink { [unowned self] _ in
- self.router.dismiss()
- self.getSession()
- }
- .store(in: &subscriptions)
-
getSession()
Sign.instance.sessionDeletePublisher
.receive(on: DispatchQueue.main)
.sink { [unowned self] _ in
self.accountsDetails.removeAll()
+ router.popToRoot()
+ Task(priority: .high) { ActivityIndicatorManager.shared.stop() }
+ }
+ .store(in: &subscriptions)
+
+ Sign.instance.authResponsePublisher
+ .receive(on: DispatchQueue.main)
+ .sink { [unowned self] response in
+ switch response.result {
+ case .success(let (session, _)):
+ if session == nil {
+ AlertPresenter.present(message: "Wallet Succesfully Authenticated", type: .success)
+ } else {
+ self.router.dismiss()
+ self.getSession()
+ }
+ break
+ case .failure(let error):
+ AlertPresenter.present(message: error.localizedDescription, type: .error)
+ }
+ Task(priority: .high) { ActivityIndicatorManager.shared.stop() }
+ }
+ .store(in: &subscriptions)
+
+ Sign.instance.sessionResponsePublisher
+ .receive(on: DispatchQueue.main)
+ .sink { response in
+ Task(priority: .high) { ActivityIndicatorManager.shared.stop() }
+ }
+ .store(in: &subscriptions)
+
+ Sign.instance.requestExpirationPublisher
+ .receive(on: DispatchQueue.main)
+ .sink { _ in
+ Task(priority: .high) { ActivityIndicatorManager.shared.stop() }
+ AlertPresenter.present(message: "Session Request has expired", type: .warning)
+ }
+ .store(in: &subscriptions)
+
+ AppKit.instance.SIWEAuthenticationPublisher
+ .receive(on: DispatchQueue.main)
+ .sink { [unowned self] result in
+ switch result {
+ case .success((let message, let signature)):
+ AlertPresenter.present(message: "Authenticated with SIWE", type: .success)
+ self.router.dismiss()
+ self.getSession()
+ case .failure(let error):
+ AlertPresenter.present(message: "\(error)", type: .warning)
+ }
}
.store(in: &subscriptions)
}
@@ -128,3 +229,34 @@ extension SignPresenter {
// MARK: - SceneViewModel
extension SignPresenter: SceneViewModel {}
+
+
+// MARK: - Authenticate request stub
+extension AuthRequestParams {
+ static func stub(
+ domain: String = "lab.web3modal.com",
+ chains: [String] = ["eip155:1", "eip155:137"],
+ nonce: String = "32891756",
+ uri: String = "https://lab.web3modal.com",
+ nbf: String? = nil,
+ exp: String? = nil,
+ statement: String? = "I accept the ServiceOrg Terms of Service: https://app.web3inbox.com/tos",
+ requestId: String? = nil,
+ resources: [String]? = nil,
+ methods: [String]? = ["personal_sign", "eth_sendTransaction"]
+ ) -> AuthRequestParams {
+ return try! AuthRequestParams(
+ domain: domain,
+ chains: chains,
+ nonce: nonce,
+ uri: uri,
+ nbf: nbf,
+ exp: exp,
+ statement: statement,
+ requestId: requestId,
+ resources: resources,
+ methods: methods
+ )
+ }
+}
+
diff --git a/Example/DApp/Modules/Sign/SignRouter.swift b/Example/DApp/Modules/Sign/SignRouter.swift
index 60da1928c..6dea21cc2 100644
--- a/Example/DApp/Modules/Sign/SignRouter.swift
+++ b/Example/DApp/Modules/Sign/SignRouter.swift
@@ -20,14 +20,22 @@ final class SignRouter {
func presentSessionAccount(sessionAccount: AccountDetails, session: Session) {
SessionAccountModule.create(app: app, sessionAccount: sessionAccount, session: session)
- .present(from: viewController)
+ .push(from: viewController)
}
-
+
func dismissNewPairing() {
newPairingViewController?.dismiss()
}
-
+
func dismiss() {
viewController.dismiss(animated: true)
}
+
+ func popToRoot() {
+ viewController.popToRoot()
+ }
+
+ func openConfig() {
+ ConfigModule.create(app: app).push(from: viewController)
+ }
}
diff --git a/Example/DApp/Modules/Sign/SignView.swift b/Example/DApp/Modules/Sign/SignView.swift
index fc60a1754..e59774df0 100644
--- a/Example/DApp/Modules/Sign/SignView.swift
+++ b/Example/DApp/Modules/Sign/SignView.swift
@@ -2,45 +2,82 @@ import SwiftUI
struct SignView: View {
@EnvironmentObject var presenter: SignPresenter
-
+
var body: some View {
NavigationStack {
ZStack {
Color(red: 25/255, green: 26/255, blue: 26/255)
.ignoresSafeArea()
-
+
ScrollView {
if presenter.accountsDetails.isEmpty {
VStack {
ForEach(presenter.chains, id: \.name) { chain in
networkItem(title: chain.name, icon: chain.name.lowercased(), id: chain.id)
}
-
+
Spacer()
-
- Button {
- presenter.connectWalletWithW3M()
- } label: {
- Text("Connect with Web3Modal")
- .font(.system(size: 16, weight: .semibold))
- .foregroundColor(.white)
- .padding(.horizontal, 16)
- .padding(.vertical, 10)
- .background(Color(red: 95/255, green: 159/255, blue: 248/255))
- .cornerRadius(16)
- }
- .padding(.top, 20)
-
- Button {
- presenter.connectWalletWithSign()
- } label: {
- Text("Connect with Sign API")
- .font(.system(size: 16, weight: .semibold))
- .foregroundColor(.white)
- .padding(.horizontal, 16)
- .padding(.vertical, 10)
- .background(Color(red: 95/255, green: 159/255, blue: 248/255))
- .cornerRadius(16)
+
+ VStack(spacing: 10) {
+ Button {
+ presenter.connectWalletWithSessionAuthenticateLinkMode()
+ } label: {
+ Text("1-Click Auth with Link Mode")
+ .font(.system(size: 16, weight: .semibold))
+ .foregroundColor(.white)
+ .padding(.horizontal, 16)
+ .padding(.vertical, 10)
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255))
+ .cornerRadius(16)
+ }
+
+ Button {
+ presenter.connectWalletWithW3M()
+ } label: {
+ Text("Connect with Web3Modal")
+ .font(.system(size: 16, weight: .semibold))
+ .foregroundColor(.white)
+ .padding(.horizontal, 16)
+ .padding(.vertical, 10)
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255))
+ .cornerRadius(16)
+ }
+
+ Button {
+ presenter.connectWalletWithSessionPropose()
+ } label: {
+ Text("Connect Session Propose")
+ .font(.system(size: 16, weight: .semibold))
+ .foregroundColor(.white)
+ .padding(.horizontal, 16)
+ .padding(.vertical, 10)
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255))
+ .cornerRadius(16)
+ }
+
+ Button {
+ presenter.connectWalletWithSessionAuthenticate()
+ } label: {
+ Text("Connect Session Authenticate")
+ .font(.system(size: 16, weight: .semibold))
+ .foregroundColor(.white)
+ .padding(.horizontal, 16)
+ .padding(.vertical, 10)
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255))
+ .cornerRadius(16)
+ }
+
+ Button {
+ presenter.connectWalletWithSessionAuthenticateSIWEOnly()
+ } label: {
+ Text("Connect Session Authenticate - SIWE only")
+ .font(.system(size: 16, weight: .semibold))
+ .foregroundColor(.white)
+ .padding(.horizontal, 16)
+ .padding(.vertical, 10)
+ .background(Color(red: 95/255, green: 159/255, blue: 248/255))
+ .cornerRadius(16)
+ }
}
.padding(.top, 10)
}
@@ -59,46 +96,47 @@ struct SignView: View {
.padding(12)
}
}
+ .padding(.bottom, presenter.accountsDetails.isEmpty ? 0 : 76)
.onAppear {
presenter.onAppear()
}
-
+
if !presenter.accountsDetails.isEmpty {
VStack {
Spacer()
-
+
Button {
presenter.disconnect()
} label: {
ZStack {
RoundedRectangle(cornerRadius: 16)
.fill(.white.opacity(0.02))
-
+
HStack {
ZStack {
Circle()
.fill(.white.opacity(0.05))
.frame(width: 32, height: 32)
-
+
Circle()
.fill(.white.opacity(0.1))
.frame(width: 30, height: 30)
-
+
Image("exit")
.resizable()
.frame(width: 14, height: 14)
}
-
+
Text("Disconnect")
.font(.system(size: 16, weight: .medium))
.foregroundColor(Color(red: 0.58, green: 0.62, blue: 0.62))
-
+
Spacer()
}
.padding(.horizontal, 12)
}
.frame(height: 56)
-
+
}
.padding(20)
}
@@ -112,22 +150,32 @@ struct SignView: View {
Color(red: 25/255, green: 26/255, blue: 26/255),
for: .navigationBar
)
+ .toolbar {
+ ToolbarItem(placement: .navigationBarTrailing) {
+ Button(action: {
+ presenter.openConfiguration()
+ }) {
+ Image(systemName: "gearshape")
+ .foregroundColor(.white)
+ }
+ }
+ }
.alert(presenter.errorMessage, isPresented: $presenter.showError) {
Button("OK", role: .cancel) {}
}
}
}
-
+
private func networkItem(title: String, icon: String, id: String) -> some View {
ZStack {
RoundedRectangle(cornerRadius: 16)
.fill(Color(red: 30/255, green: 31/255, blue: 31/255))
-
+
HStack(spacing: 10) {
Image(icon == "eip155" ? "ethereum" : icon)
.resizable()
.frame(width: 40, height: 40)
-
+
VStack(alignment: .leading, spacing: 5) {
HStack {
Text(title)
@@ -135,23 +183,23 @@ struct SignView: View {
.truncationMode(.middle)
.font(.system(size: 16, weight: .medium))
.foregroundColor(Color(red: 228/255, green: 231/255, blue: 231/255))
-
+
Spacer()
}
-
+
HStack {
Text(id)
.lineLimit(1)
.truncationMode(.middle)
.font(.system(size: 13, weight: .regular))
.foregroundColor(Color(red: 0.58, green: 0.62, blue: 0.62))
-
+
Spacer()
}
}
-
+
Spacer()
-
+
if !presenter.accountsDetails.isEmpty {
Image(systemName: "chevron.right")
.foregroundColor(Color(red: 0.58, green: 0.62, blue: 0.62))
diff --git a/Example/DApp/SceneDelegate.swift b/Example/DApp/SceneDelegate.swift
index 2586a7fd9..fd5b21c81 100644
--- a/Example/DApp/SceneDelegate.swift
+++ b/Example/DApp/SceneDelegate.swift
@@ -1,32 +1,36 @@
import UIKit
-import Web3Modal
-import Auth
+import ReownAppKit
import WalletConnectRelay
import WalletConnectNetworking
+import Combine
+
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
+ private var publishers = Set()
private let app = Application()
+
+ func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
+ ProfilingService.instance.send(logMessage: .init(message: "SceneDelegate: will try to dispatch envelope - userActivity: \(String(describing: userActivity.webpageURL))"))
+ guard let url = userActivity.webpageURL,
+ let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else {
+ return
+ }
+ AppKit.instance.handleDeeplink(url)
+ }
+
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
- Networking.configure(projectId: InputConfig.projectId, socketFactory: DefaultSocketFactory())
- Auth.configure(crypto: DefaultCryptoProvider())
-
- let metadata = AppMetadata(
- name: "Swift Dapp",
- description: "WalletConnect DApp sample",
- url: "wallet.connect",
- icons: ["https://avatars.githubusercontent.com/u/37784886"],
- redirect: AppMetadata.Redirect(native: "wcdapp://", universal: nil)
- )
-
- Web3Modal.configure(
- projectId: InputConfig.projectId,
- metadata: metadata
- )
-
+ configureClientsIfNeeded()
+ setUpProfilingIfNeeded()
+ ProfilingService.instance.send(logMessage: .init(message: "SceneDelegate: willConnectTo : \(String(describing: connectionOptions.userActivities.first?.webpageURL?.absoluteString))"))
+
+ configureClientsIfNeeded()
+ setUpProfilingIfNeeded()
+
+
setupWindow(scene: scene)
}
@@ -34,9 +38,132 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: windowScene)
- let viewController = MainModule.create(app: app)
+ let viewController = SignModule.create(app: app)
+ .wrapToNavigationController()
window?.rootViewController = viewController
window?.makeKeyAndVisible()
}
+
+ func scene(_ scene: UIScene, openURLContexts URLContexts: Set) {
+ ProfilingService.instance.send(logMessage: .init(message: "SceneDelegate: - openURLContexts : \(String(describing: URLContexts.first?.url))"))
+
+ guard let context = URLContexts.first else { return }
+
+ let url = context.url
+
+ guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false),
+ let queryItems = components.queryItems,
+ queryItems.contains(where: { $0.name == "wc_ev" }) else {
+ return
+ }
+
+ do {
+ try Sign.instance.dispatchEnvelope(url.absoluteString)
+ } catch {
+ AlertPresenter.present(message: error.localizedDescription, type: .error)
+ }
+ }
+
+ func sceneWillEnterForeground(_ scene: UIScene) {
+ ProfilingService.instance.send(logMessage: .init(message: "SceneDelegate: scene will enter foreground"))
+ // Additional code to handle entering the foreground
+ }
+
+ func sceneDidBecomeActive(_ scene: UIScene) {
+ ProfilingService.instance.send(logMessage: .init(message: "SceneDelegate: scene did become active"))
+ // Additional code to handle becoming active
+ }
+
+ private func setUpProfilingIfNeeded() {
+ if let clientId = try? Networking.interactor.getClientId() {
+ ProfilingService.instance.setUpProfiling(account: "swift_dapp_\(clientId)", clientId: clientId)
+ }
+ }
+
+ var clientsConfigured = false
+ private func configureClientsIfNeeded() {
+ if clientsConfigured {return}
+ else {clientsConfigured = true}
+ Networking.configure(
+ groupIdentifier: Constants.groupIdentifier,
+ projectId: InputConfig.projectId,
+ socketFactory: DefaultSocketFactory()
+ )
+
+ let metadata = AppMetadata(
+ name: "Swift Dapp",
+ description: "WalletConnect DApp sample",
+ url: "https://lab.web3modal.com/dapp",
+ icons: ["https://avatars.githubusercontent.com/u/37784886"],
+ redirect: try! AppMetadata.Redirect(native: "wcdapp://", universal: "https://lab.web3modal.com/dapp", linkMode: true)
+ )
+
+ AppKit.configure(
+ projectId: InputConfig.projectId,
+ metadata: metadata,
+ crypto: DefaultCryptoProvider(),
+ authRequestParams: .stub(), // set to nil for non SIWE
+ customWallets: [
+ .init(
+ id: "swift-sample",
+ name: "Swift Sample Wallet",
+ homepage: "https://walletconnect.com/",
+ imageUrl: "https://avatars.githubusercontent.com/u/37784886?s=200&v=4",
+ order: 1,
+ mobileLink: "walletapp://",
+ linkMode: "https://lab.web3modal.com/wallet"
+ ),
+ .init(
+ id: "rn-sample",
+ name: "RN Sample Wallet",
+ homepage: "https://walletconnect.com/",
+ imageUrl: "https://avatars.githubusercontent.com/u/37784886?s=200&v=4",
+ order: 1,
+ mobileLink: "rn-web3wallet://",
+ linkMode: "https://lab.web3modal.com/rn_walletkit"
+ ),
+ .init(
+ id: "flutter-sample-internal",
+ name: "FL Sample Wallet (internal)",
+ homepage: "https://walletconnect.com/",
+ imageUrl: "https://avatars.githubusercontent.com/u/37784886?s=200&v=4",
+ order: 1,
+ mobileLink: "wcflutterwallet-internal://",
+ linkMode: "https://dev.lab.web3modal.com/flutter_walletkit_internal"
+ ),
+ ]
+ )
+
+ AppKit.instance.authResponsePublisher.sink { (id, result) in
+ switch result {
+ case .success((_, _)):
+ AlertPresenter.present(message: "User Authenticted with SIWE", type: .success)
+ case .failure(_):
+ break
+ }
+ }.store(in: &publishers)
+
+ Sign.instance.logger.setLogging(level: .debug)
+ Networking.instance.setLogging(level: .debug)
+
+ Sign.instance.logsPublisher.sink { log in
+ switch log {
+ case .error(let logMessage):
+ AlertPresenter.present(message: logMessage.message, type: .error)
+ default: return
+ }
+ }.store(in: &publishers)
+
+ Sign.instance.socketConnectionStatusPublisher.sink { status in
+ switch status {
+ case .connected:
+ AlertPresenter.present(message: "Your web socket has connected", type: .success)
+ case .disconnected:
+ AlertPresenter.present(message: "Your web socket is disconnected", type: .warning)
+ }
+ }.store(in: &publishers)
+
+ AppKit.instance.disableAnalytics()
+ }
}
diff --git a/Example/ExampleApp.xcodeproj/IntegrationTests.xctestplan b/Example/ExampleApp.xcodeproj/IntegrationTests.xctestplan
index 40b79df1d..a7e0d1b30 100644
--- a/Example/ExampleApp.xcodeproj/IntegrationTests.xctestplan
+++ b/Example/ExampleApp.xcodeproj/IntegrationTests.xctestplan
@@ -10,6 +10,11 @@
],
"defaultOptions" : {
"codeCoverage" : false,
+ "commandLineArgumentEntries" : [
+ {
+ "argument" : "isTesting"
+ }
+ ],
"environmentVariableEntries" : [
{
"key" : "RELAY_HOST",
@@ -54,10 +59,12 @@
{
"parallelizable" : true,
"skippedTests" : [
+ "AuthTests",
"AuthTests\/testEIP1271RespondSuccess()",
"ChatTests",
"ENSResolverTests",
"HistoryTests",
+ "NotifyTests",
"SyncDerivationServiceTests",
"SyncTests"
],
diff --git a/Example/ExampleApp.xcodeproj/project.pbxproj b/Example/ExampleApp.xcodeproj/project.pbxproj
index 4f5a2101c..988d32e57 100644
--- a/Example/ExampleApp.xcodeproj/project.pbxproj
+++ b/Example/ExampleApp.xcodeproj/project.pbxproj
@@ -8,9 +8,29 @@
/* Begin PBXBuildFile section */
767DC83528997F8E00080FA9 /* EthSendTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 767DC83428997F8E00080FA9 /* EthSendTransaction.swift */; };
- 7694A5262874296A0001257E /* RegistryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7694A5252874296A0001257E /* RegistryTests.swift */; };
+ 840507E32C8BAC7C00148A9B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 840507E22C8BAC7C00148A9B /* Preview Assets.xcassets */; };
+ 8421447B2C80A2B8004FF494 /* ReownAppKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8421447A2C80A2B8004FF494 /* ReownAppKit */; };
+ 8421447D2C80A544004FF494 /* ReownAppKitUI in Frameworks */ = {isa = PBXBuildFile; productRef = 8421447C2C80A544004FF494 /* ReownAppKitUI */; };
+ 8421447F2C81863A004FF494 /* ReownWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8421447E2C81863A004FF494 /* ReownWalletKit */; };
+ 842144812C818684004FF494 /* ReownWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = 842144802C818684004FF494 /* ReownWalletKit */; };
+ 842144832C818928004FF494 /* ReownWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = 842144822C818928004FF494 /* ReownWalletKit */; };
84310D05298BC980000C15B6 /* MainInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84310D04298BC980000C15B6 /* MainInteractor.swift */; };
8439CB89293F658E00F2F2E2 /* PushMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8439CB88293F658E00F2F2E2 /* PushMessage.swift */; };
+ 844511922C8B689D00A6A86C /* AppKitLabApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511912C8B689D00A6A86C /* AppKitLabApp.swift */; };
+ 844511AC2C8B695500A6A86C /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511A02C8B695300A6A86C /* InputConfig.swift */; };
+ 844511AD2C8B695500A6A86C /* ComponentLibraryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511A12C8B695400A6A86C /* ComponentLibraryView.swift */; };
+ 844511AF2C8B695500A6A86C /* WCSocketFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511A42C8B695400A6A86C /* WCSocketFactory.swift */; };
+ 844511B02C8B695500A6A86C /* DefaultCryptoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511A52C8B695400A6A86C /* DefaultCryptoProvider.swift */; };
+ 844511B12C8B695500A6A86C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511A62C8B695500A6A86C /* ContentView.swift */; };
+ 844511B32C8B695500A6A86C /* AlertPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844511A82C8B695500A6A86C /* AlertPresenter.swift */; };
+ 844511B42C8B695500A6A86C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 844511A92C8B695500A6A86C /* Assets.xcassets */; };
+ 844511B62C8B69F200A6A86C /* Starscream in Frameworks */ = {isa = PBXBuildFile; productRef = 844511B52C8B69F200A6A86C /* Starscream */; };
+ 844511BA2C8B6BC800A6A86C /* Atlantis in Frameworks */ = {isa = PBXBuildFile; productRef = 844511B92C8B6BC800A6A86C /* Atlantis */; };
+ 844511BC2C8B6BE600A6A86C /* Web3ContractABI in Frameworks */ = {isa = PBXBuildFile; productRef = 844511BB2C8B6BE600A6A86C /* Web3ContractABI */; };
+ 844511BE2C8B6BF000A6A86C /* ReownAppKitUI in Frameworks */ = {isa = PBXBuildFile; productRef = 844511BD2C8B6BF000A6A86C /* ReownAppKitUI */; };
+ 844511C02C8B6BF800A6A86C /* Web3 in Frameworks */ = {isa = PBXBuildFile; productRef = 844511BF2C8B6BF800A6A86C /* Web3 */; };
+ 844511C22C8B6C0600A6A86C /* SwiftMessages in Frameworks */ = {isa = PBXBuildFile; productRef = 844511C12C8B6C0600A6A86C /* SwiftMessages */; };
+ 844511C42C8B6C0D00A6A86C /* ReownAppKit in Frameworks */ = {isa = PBXBuildFile; productRef = 844511C32C8B6C0D00A6A86C /* ReownAppKit */; };
844749F629B9E5B9005F520B /* RelayClientEndToEndTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844749F529B9E5B9005F520B /* RelayClientEndToEndTests.swift */; };
844749FD29B9E6B2005F520B /* WalletConnectNetworking in Frameworks */ = {isa = PBXBuildFile; productRef = 844749FC29B9E6B2005F520B /* WalletConnectNetworking */; };
844749FE29B9EB1B005F520B /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518B31328E33A6500A2CE93 /* InputConfig.swift */; };
@@ -19,6 +39,14 @@
84474A0229B9ECA2005F520B /* DefaultSocketFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AEF2877F73000094373 /* DefaultSocketFactory.swift */; };
8448F1D427E4726F0000B866 /* WalletConnect in Frameworks */ = {isa = PBXBuildFile; productRef = 8448F1D327E4726F0000B866 /* WalletConnect */; };
845B8D8C2934B36C0084A966 /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = 845B8D8B2934B36C0084A966 /* Account.swift */; };
+ 846E359F2C00654F00E63DF4 /* ConfigModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E359E2C00654F00E63DF4 /* ConfigModule.swift */; };
+ 846E35A22C0065AD00E63DF4 /* ConfigRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E35A12C0065AD00E63DF4 /* ConfigRouter.swift */; };
+ 846E35A42C0065B600E63DF4 /* ConfigPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E35A32C0065B600E63DF4 /* ConfigPresenter.swift */; };
+ 846E35A62C0065C100E63DF4 /* ConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E35A52C0065C100E63DF4 /* ConfigView.swift */; };
+ 846E35A82C006C5600E63DF4 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E35A72C006C5600E63DF4 /* Constants.swift */; };
+ 84733CD32C1C2A4B001B2850 /* AlertPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AEC2502B4D42C100E27A5B /* AlertPresenter.swift */; };
+ 84733CD42C1C2C24001B2850 /* ProfilingService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50B6A372B06697B00162B01 /* ProfilingService.swift */; };
+ 84733CD52C1C2CEB001B2850 /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE25D293F56D6004840D1 /* InputConfig.swift */; };
847BD1D62989492500076C90 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847BD1D12989492500076C90 /* MainViewController.swift */; };
847BD1D82989492500076C90 /* MainModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847BD1D32989492500076C90 /* MainModule.swift */; };
847BD1D92989492500076C90 /* MainPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847BD1D42989492500076C90 /* MainPresenter.swift */; };
@@ -31,24 +59,25 @@
847BD1E8298A806800076C90 /* NotificationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847BD1E3298A806800076C90 /* NotificationsView.swift */; };
847BD1EB298A87AB00076C90 /* SubscriptionsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847BD1EA298A87AB00076C90 /* SubscriptionsViewModel.swift */; };
847F08012A25DBFF00B2A5A4 /* XPlatformW3WTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847F08002A25DBFF00B2A5A4 /* XPlatformW3WTests.swift */; };
- 8487A9442A836C2A0003D5AF /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = 8487A9432A836C2A0003D5AF /* Sentry */; };
- 8487A9462A836C3F0003D5AF /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = 8487A9452A836C3F0003D5AF /* Sentry */; };
+ 8486EDD32B4F2EA6008E53C3 /* SwiftMessages in Frameworks */ = {isa = PBXBuildFile; productRef = 8486EDD22B4F2EA6008E53C3 /* SwiftMessages */; };
8487A9482A83AD680003D5AF /* LoggingService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8487A9472A83AD680003D5AF /* LoggingService.swift */; };
84943C7B2A9BA206007EBAC2 /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 84943C7A2A9BA206007EBAC2 /* Mixpanel */; };
84943C7D2A9BA328007EBAC2 /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 84943C7C2A9BA328007EBAC2 /* Mixpanel */; };
849D7A93292E2169006A2BD4 /* NotifyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849D7A92292E2169006A2BD4 /* NotifyTests.swift */; };
84A6E3C32A386BBC008A0571 /* Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A6E3C22A386BBC008A0571 /* Publisher.swift */; };
84AA01DB28CF0CD7005D48D8 /* XCTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AA01DA28CF0CD7005D48D8 /* XCTest.swift */; };
+ 84AEC24F2B4D1EE400E27A5B /* ActivityIndicatorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AEC24E2B4D1EE400E27A5B /* ActivityIndicatorManager.swift */; };
+ 84AEC2512B4D42C100E27A5B /* AlertPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AEC2502B4D42C100E27A5B /* AlertPresenter.swift */; };
+ 84AEC2542B4D43CD00E27A5B /* SwiftMessages in Frameworks */ = {isa = PBXBuildFile; productRef = 84AEC2532B4D43CD00E27A5B /* SwiftMessages */; };
84B8154E2991099000FAD54E /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B8154D2991099000FAD54E /* BuildConfiguration.swift */; };
84B8155B2992A18D00FAD54E /* NotifyMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B8155A2992A18D00FAD54E /* NotifyMessageViewModel.swift */; };
+ 84CA52172C88965C0069BB33 /* ReownRouter in Frameworks */ = {isa = PBXBuildFile; productRef = 84CA52162C88965C0069BB33 /* ReownRouter */; };
84CE641F27981DED00142511 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CE641E27981DED00142511 /* AppDelegate.swift */; };
84CE642127981DED00142511 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CE642027981DED00142511 /* SceneDelegate.swift */; };
84CE642827981DF000142511 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84CE642727981DF000142511 /* Assets.xcassets */; };
84CE642B27981DF000142511 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 84CE642927981DF000142511 /* LaunchScreen.storyboard */; };
- 84CEC64628D89D6B00D081A8 /* PairingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CEC64528D89D6B00D081A8 /* PairingTests.swift */; };
- 84D2A66628A4F51E0088AE09 /* AuthTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D2A66528A4F51E0088AE09 /* AuthTests.swift */; };
+ 84D093EB2B4EA6CB005B1925 /* ActivityIndicatorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D093EA2B4EA6CB005B1925 /* ActivityIndicatorManager.swift */; };
84DB38F32983CDAE00BFEE37 /* PushRegisterer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DB38F22983CDAE00BFEE37 /* PushRegisterer.swift */; };
- 84DDB4ED28ABB663003D66ED /* WalletConnectAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 84DDB4EC28ABB663003D66ED /* WalletConnectAuth */; };
84E6B84A29787A8000428BAF /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E6B84929787A8000428BAF /* NotificationService.swift */; };
84E6B84E29787A8000428BAF /* PNDecryptionService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 84E6B84729787A8000428BAF /* PNDecryptionService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
84FE684628ACDB4700C893FF /* RequestParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84FE684528ACDB4700C893FF /* RequestParams.swift */; };
@@ -60,11 +89,8 @@
A50D53C32ABA055700A4FD8B /* NotifyPreferencesRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50D53BE2ABA055700A4FD8B /* NotifyPreferencesRouter.swift */; };
A50D53C42ABA055700A4FD8B /* NotifyPreferencesInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50D53BF2ABA055700A4FD8B /* NotifyPreferencesInteractor.swift */; };
A50D53C52ABA055700A4FD8B /* NotifyPreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50D53C02ABA055700A4FD8B /* NotifyPreferencesView.swift */; };
- A50DF19D2A25084A0036EA6C /* WalletConnectHistory in Frameworks */ = {isa = PBXBuildFile; productRef = A50DF19C2A25084A0036EA6C /* WalletConnectHistory */; };
- A50F3946288005B200064555 /* Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50F3945288005B200064555 /* Types.swift */; };
A51606F82A2F47BD00CACB92 /* DefaultBIP44Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51606F72A2F47BD00CACB92 /* DefaultBIP44Provider.swift */; };
A51606F92A2F47BD00CACB92 /* DefaultBIP44Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51606F72A2F47BD00CACB92 /* DefaultBIP44Provider.swift */; };
- A51606FA2A2F47BD00CACB92 /* DefaultBIP44Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51606F72A2F47BD00CACB92 /* DefaultBIP44Provider.swift */; };
A51606FB2A2F47BD00CACB92 /* DefaultBIP44Provider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51606F72A2F47BD00CACB92 /* DefaultBIP44Provider.swift */; };
A51811982A52E21A00A52B15 /* ConfigurationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51811972A52E21A00A52B15 /* ConfigurationService.swift */; };
A518119F2A52E83100A52B15 /* SettingsModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518119A2A52E83100A52B15 /* SettingsModule.swift */; };
@@ -72,100 +98,30 @@
A51811A12A52E83100A52B15 /* SettingsRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518119C2A52E83100A52B15 /* SettingsRouter.swift */; };
A51811A22A52E83100A52B15 /* SettingsInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518119D2A52E83100A52B15 /* SettingsInteractor.swift */; };
A51811A32A52E83100A52B15 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518119E2A52E83100A52B15 /* SettingsView.swift */; };
- A518A98729683FB60035247E /* Web3InboxViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518A98429683FB60035247E /* Web3InboxViewController.swift */; };
- A518A98829683FB60035247E /* Web3InboxModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518A98529683FB60035247E /* Web3InboxModule.swift */; };
- A518A98929683FB60035247E /* Web3InboxRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518A98629683FB60035247E /* Web3InboxRouter.swift */; };
A518B31428E33A6500A2CE93 /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518B31328E33A6500A2CE93 /* InputConfig.swift */; };
- A51AC0D928E436A3001BACF9 /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51AC0D828E436A3001BACF9 /* InputConfig.swift */; };
- A51AC0DF28E4379F001BACF9 /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51AC0DE28E4379F001BACF9 /* InputConfig.swift */; };
- A5321C2B2A250367006CADC3 /* HistoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5321C2A2A250367006CADC3 /* HistoryTests.swift */; };
- A5417BBE299BFC3E00B469F3 /* ImportAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5417BBD299BFC3E00B469F3 /* ImportAccount.swift */; };
A541959E2934BFEF0035AD19 /* CacaoSignerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A541959A2934BFEF0035AD19 /* CacaoSignerTests.swift */; };
A541959F2934BFEF0035AD19 /* SignerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A541959B2934BFEF0035AD19 /* SignerTests.swift */; };
A54195A02934BFEF0035AD19 /* EIP1271VerifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A541959C2934BFEF0035AD19 /* EIP1271VerifierTests.swift */; };
A54195A12934BFEF0035AD19 /* EIP191VerifierTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A541959D2934BFEF0035AD19 /* EIP191VerifierTests.swift */; };
A54195A52934E83F0035AD19 /* Web3 in Frameworks */ = {isa = PBXBuildFile; productRef = A54195A42934E83F0035AD19 /* Web3 */; };
- A561C80029DF32CE00DF540D /* HDWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = A561C7FF29DF32CE00DF540D /* HDWalletKit */; };
- A561C80329DFCCDC00DF540D /* SyncTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A561C80229DFCCDC00DF540D /* SyncTests.swift */; };
- A561C80529DFCD4500DF540D /* WalletConnectSync in Frameworks */ = {isa = PBXBuildFile; productRef = A561C80429DFCD4500DF540D /* WalletConnectSync */; };
- A5629AA92876A23100094373 /* ChatService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AA82876A23100094373 /* ChatService.swift */; };
- A5629ABD2876CBC000094373 /* ChatListModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AB82876CBC000094373 /* ChatListModule.swift */; };
- A5629ABE2876CBC000094373 /* ChatListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AB92876CBC000094373 /* ChatListPresenter.swift */; };
- A5629ABF2876CBC000094373 /* ChatListRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ABA2876CBC000094373 /* ChatListRouter.swift */; };
- A5629AC02876CBC000094373 /* ChatListInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ABB2876CBC000094373 /* ChatListInteractor.swift */; };
- A5629AC12876CBC000094373 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ABC2876CBC000094373 /* ChatListView.swift */; };
- A5629AD32876CC5700094373 /* InviteModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ACE2876CC5700094373 /* InviteModule.swift */; };
- A5629AD42876CC5700094373 /* InvitePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ACF2876CC5700094373 /* InvitePresenter.swift */; };
- A5629AD52876CC5700094373 /* InviteRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AD02876CC5700094373 /* InviteRouter.swift */; };
- A5629AD62876CC5700094373 /* InviteInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AD12876CC5700094373 /* InviteInteractor.swift */; };
- A5629AD72876CC5700094373 /* InviteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AD22876CC5700094373 /* InviteView.swift */; };
- A5629ADE2876CC6E00094373 /* InviteListModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AD92876CC6E00094373 /* InviteListModule.swift */; };
- A5629ADF2876CC6E00094373 /* InviteListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ADA2876CC6E00094373 /* InviteListPresenter.swift */; };
- A5629AE02876CC6E00094373 /* InviteListRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ADB2876CC6E00094373 /* InviteListRouter.swift */; };
- A5629AE12876CC6E00094373 /* InviteListInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ADC2876CC6E00094373 /* InviteListInteractor.swift */; };
- A5629AE22876CC6E00094373 /* InviteListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629ADD2876CC6E00094373 /* InviteListView.swift */; };
- A5629AE42876E6D200094373 /* ThreadViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AE32876E6D200094373 /* ThreadViewModel.swift */; };
- A5629AE828772A0100094373 /* InviteViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AE728772A0100094373 /* InviteViewModel.swift */; };
- A5629AEA2877F2D600094373 /* WalletConnectChat in Frameworks */ = {isa = PBXBuildFile; productRef = A5629AE92877F2D600094373 /* WalletConnectChat */; };
- A5629AF22877F75100094373 /* Starscream in Frameworks */ = {isa = PBXBuildFile; productRef = A5629AF12877F75100094373 /* Starscream */; };
A56AC8F22AD88A5A001C8FAA /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56AC8F12AD88A5A001C8FAA /* Sequence.swift */; };
- A573C53729EC34A600E3CBFD /* SyncDerivationServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A573C53629EC34A600E3CBFD /* SyncDerivationServiceTests.swift */; };
A573C53929EC365000E3CBFD /* HDWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = A573C53829EC365000E3CBFD /* HDWalletKit */; };
A573C53B29EC365800E3CBFD /* HDWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = A573C53A29EC365800E3CBFD /* HDWalletKit */; };
A573C53D29EC366500E3CBFD /* HDWalletKit in Frameworks */ = {isa = PBXBuildFile; productRef = A573C53C29EC366500E3CBFD /* HDWalletKit */; };
A57879712A4EDC8100F8D10B /* TextFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57879702A4EDC8100F8D10B /* TextFieldView.swift */; };
A57879722A4F225E00F8D10B /* ImportAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5417BBD299BFC3E00B469F3 /* ImportAccount.swift */; };
A57879732A4F248200F8D10B /* AccountStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20228287EB34C007E3188 /* AccountStorage.swift */; };
- A578FA322873036400AA7720 /* InputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A578FA312873036400AA7720 /* InputView.swift */; };
- A578FA35287304A300AA7720 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = A578FA34287304A300AA7720 /* Color.swift */; };
- A578FA372873D8EE00AA7720 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A578FA362873D8EE00AA7720 /* UIColor.swift */; };
- A578FA392873FCE000AA7720 /* ChatScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A578FA382873FCE000AA7720 /* ChatScrollView.swift */; };
- A578FA3D2874002400AA7720 /* View.swift in Sources */ = {isa = PBXBuildFile; fileRef = A578FA3C2874002400AA7720 /* View.swift */; };
A58A1ECC29BF458600A82A20 /* ENSResolverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58A1ECB29BF458600A82A20 /* ENSResolverTests.swift */; };
- A58E7CEB28729F550082D443 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7CEA28729F550082D443 /* AppDelegate.swift */; };
- A58E7CED28729F550082D443 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7CEC28729F550082D443 /* SceneDelegate.swift */; };
- A58E7CF428729F550082D443 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A58E7CF328729F550082D443 /* Assets.xcassets */; };
- A58E7CF728729F550082D443 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A58E7CF528729F550082D443 /* LaunchScreen.storyboard */; };
- A58E7D002872A1050082D443 /* SceneViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7CFF2872A1050082D443 /* SceneViewController.swift */; };
- A58E7D032872A1630082D443 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D022872A1630082D443 /* String.swift */; };
- A58E7D0C2872A45B0082D443 /* MainModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D072872A45B0082D443 /* MainModule.swift */; };
- A58E7D0D2872A45B0082D443 /* MainPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D082872A45B0082D443 /* MainPresenter.swift */; };
- A58E7D0E2872A45B0082D443 /* MainRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D092872A45B0082D443 /* MainRouter.swift */; };
- A58E7D132872A4A80082D443 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D122872A4A80082D443 /* Application.swift */; };
- A58E7D152872A5410082D443 /* UIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D142872A5410082D443 /* UIViewController.swift */; };
- A58E7D1D2872A57B0082D443 /* Configurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D172872A57B0082D443 /* Configurator.swift */; };
- A58E7D1E2872A57B0082D443 /* ThirdPartyConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D182872A57B0082D443 /* ThirdPartyConfigurator.swift */; };
- A58E7D1F2872A57B0082D443 /* ApplicationConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D192872A57B0082D443 /* ApplicationConfigurator.swift */; };
- A58E7D212872A57B0082D443 /* MigrationConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D1B2872A57B0082D443 /* MigrationConfigurator.swift */; };
- A58E7D222872A57B0082D443 /* AppearanceConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D1C2872A57B0082D443 /* AppearanceConfigurator.swift */; };
- A58E7D242872AB130082D443 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D232872AB130082D443 /* MainViewController.swift */; };
- A58E7D392872D55F0082D443 /* ChatModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D342872D55F0082D443 /* ChatModule.swift */; };
- A58E7D3A2872D55F0082D443 /* ChatRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D352872D55F0082D443 /* ChatRouter.swift */; };
- A58E7D3B2872D55F0082D443 /* ChatInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D362872D55F0082D443 /* ChatInteractor.swift */; };
- A58E7D3C2872D55F0082D443 /* ChatPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D372872D55F0082D443 /* ChatPresenter.swift */; };
- A58E7D3D2872D55F0082D443 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D382872D55F0082D443 /* ChatView.swift */; };
- A58E7D3F2872E99A0082D443 /* TabPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D3E2872E99A0082D443 /* TabPage.swift */; };
- A58E7D432872EE320082D443 /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D422872EE320082D443 /* MessageView.swift */; };
- A58E7D452872EE570082D443 /* ContentMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D442872EE570082D443 /* ContentMessageView.swift */; };
- A58E7D482872EF610082D443 /* MessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58E7D472872EF610082D443 /* MessageViewModel.swift */; };
- A58EC611299D57B800F3452A /* AsyncButton in Frameworks */ = {isa = PBXBuildFile; productRef = A58EC610299D57B800F3452A /* AsyncButton */; };
- A58EC616299D5C6400F3452A /* PlainButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58EC615299D5C6400F3452A /* PlainButton.swift */; };
- A58EC618299D665A00F3452A /* Web3Inbox in Frameworks */ = {isa = PBXBuildFile; productRef = A58EC617299D665A00F3452A /* Web3Inbox */; };
A59CF4F6292F83D50031A42F /* DefaultSignerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59CF4F5292F83D50031A42F /* DefaultSignerFactory.swift */; };
A59D25EE2AB3672700D7EA3A /* AsyncButton in Frameworks */ = {isa = PBXBuildFile; productRef = A59D25ED2AB3672700D7EA3A /* AsyncButton */; };
- A59F877628B5462900A9CD80 /* WalletConnectAuth in Frameworks */ = {isa = PBXBuildFile; productRef = A59F877528B5462900A9CD80 /* WalletConnectAuth */; };
- A59FAEC928B7B93A002BB66F /* Web3 in Frameworks */ = {isa = PBXBuildFile; productRef = A59FAEC828B7B93A002BB66F /* Web3 */; };
A5A0843D29D2F624000B9B17 /* DefaultCryptoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A0843B29D2F60A000B9B17 /* DefaultCryptoProvider.swift */; };
A5A0843E29D2F624000B9B17 /* DefaultCryptoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A0843B29D2F60A000B9B17 /* DefaultCryptoProvider.swift */; };
- A5A0843F29D2F625000B9B17 /* DefaultCryptoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A0843B29D2F60A000B9B17 /* DefaultCryptoProvider.swift */; };
A5A0844029D2F626000B9B17 /* DefaultCryptoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A0843B29D2F60A000B9B17 /* DefaultCryptoProvider.swift */; };
A5A4FC772840C12C00BBEC1E /* RegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A4FC762840C12C00BBEC1E /* RegressionTests.swift */; };
A5A650CA2B062A1400F9AD4B /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = A5A650C92B062A1400F9AD4B /* Mixpanel */; };
A5A8E47A293A1C9B00FEB97D /* DefaultSocketFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AEF2877F73000094373 /* DefaultSocketFactory.swift */; };
A5A8E47D293A1CFE00FEB97D /* DefaultSocketFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AEF2877F73000094373 /* DefaultSocketFactory.swift */; };
A5A8E47E293A1CFE00FEB97D /* DefaultSignerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59CF4F5292F83D50031A42F /* DefaultSignerFactory.swift */; };
- A5A8E47F293A1D0000FEB97D /* DefaultSocketFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AEF2877F73000094373 /* DefaultSocketFactory.swift */; };
- A5A8E480293A1D0000FEB97D /* DefaultSignerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59CF4F5292F83D50031A42F /* DefaultSignerFactory.swift */; };
A5B4F7C22ABB20AE0099AF7C /* SubscriptionPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B4F7BD2ABB20AE0099AF7C /* SubscriptionPresenter.swift */; };
A5B4F7C32ABB20AE0099AF7C /* SubscriptionInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B4F7BE2ABB20AE0099AF7C /* SubscriptionInteractor.swift */; };
A5B4F7C42ABB20AE0099AF7C /* SubscriptionModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B4F7BF2ABB20AE0099AF7C /* SubscriptionModule.swift */; };
@@ -176,22 +132,7 @@
A5B6C0F32A6EAB1700927332 /* WalletConnectNotify in Frameworks */ = {isa = PBXBuildFile; productRef = A5B6C0F22A6EAB1700927332 /* WalletConnectNotify */; };
A5B6C0F52A6EAB2800927332 /* WalletConnectNotify in Frameworks */ = {isa = PBXBuildFile; productRef = A5B6C0F42A6EAB2800927332 /* WalletConnectNotify */; };
A5B6C0F72A6EAB3200927332 /* WalletConnectNotify in Frameworks */ = {isa = PBXBuildFile; productRef = A5B6C0F62A6EAB3200927332 /* WalletConnectNotify */; };
- A5BB7FA328B6A50400707FC6 /* WalletConnectAuth in Frameworks */ = {isa = PBXBuildFile; productRef = A5BB7FA228B6A50400707FC6 /* WalletConnectAuth */; };
A5BB7FAD28B6AA7D00707FC6 /* QRCodeGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5BB7FAC28B6AA7D00707FC6 /* QRCodeGenerator.swift */; };
- A5C2020B287D9DEE007E3188 /* WelcomeModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20206287D9DEE007E3188 /* WelcomeModule.swift */; };
- A5C2020C287D9DEE007E3188 /* WelcomePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20207287D9DEE007E3188 /* WelcomePresenter.swift */; };
- A5C2020D287D9DEE007E3188 /* WelcomeRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20208287D9DEE007E3188 /* WelcomeRouter.swift */; };
- A5C2020F287D9DEE007E3188 /* WelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C2020A287D9DEE007E3188 /* WelcomeView.swift */; };
- A5C20219287E1FD8007E3188 /* ImportModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20214287E1FD8007E3188 /* ImportModule.swift */; };
- A5C2021A287E1FD8007E3188 /* ImportPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20215287E1FD8007E3188 /* ImportPresenter.swift */; };
- A5C2021B287E1FD8007E3188 /* ImportRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20216287E1FD8007E3188 /* ImportRouter.swift */; };
- A5C2021C287E1FD8007E3188 /* ImportInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20217287E1FD8007E3188 /* ImportInteractor.swift */; };
- A5C2021D287E1FD8007E3188 /* ImportView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20218287E1FD8007E3188 /* ImportView.swift */; };
- A5C20221287EA5B8007E3188 /* TextFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20220287EA5B8007E3188 /* TextFieldView.swift */; };
- A5C20223287EA7E2007E3188 /* BrandButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20222287EA7E2007E3188 /* BrandButton.swift */; };
- A5C20229287EB34C007E3188 /* AccountStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C20228287EB34C007E3188 /* AccountStorage.swift */; };
- A5C2022B287EB89A007E3188 /* WelcomeInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C2022A287EB89A007E3188 /* WelcomeInteractor.swift */; };
- A5C5153329BB7A6A004210BA /* InviteType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C5153229BB7A6A004210BA /* InviteType.swift */; };
A5C8BE85292FE20B006CC85C /* Web3 in Frameworks */ = {isa = PBXBuildFile; productRef = A5C8BE84292FE20B006CC85C /* Web3 */; };
A5D610C82AB31EE800C20083 /* SegmentedPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D610C72AB31EE800C20083 /* SegmentedPicker.swift */; };
A5D610CA2AB3249100C20083 /* ListingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D610C92AB3249100C20083 /* ListingViewModel.swift */; };
@@ -204,8 +145,6 @@
A5E03DFA286465C700888481 /* SignClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E03DF9286465C700888481 /* SignClientTests.swift */; };
A5E03DFD286465D100888481 /* Stubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E03DFC286465D100888481 /* Stubs.swift */; };
A5E03DFF2864662500888481 /* WalletConnect in Frameworks */ = {isa = PBXBuildFile; productRef = A5E03DFE2864662500888481 /* WalletConnect */; };
- A5E03E01286466EA00888481 /* WalletConnectChat in Frameworks */ = {isa = PBXBuildFile; productRef = A5E03E00286466EA00888481 /* WalletConnectChat */; };
- A5E03E03286466F400888481 /* ChatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E03E02286466F400888481 /* ChatTests.swift */; };
A5E03E1128646F8000888481 /* KeychainStorageMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E03E1028646F8000888481 /* KeychainStorageMock.swift */; };
A5E22D1A2840C62A00E36487 /* Engine.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E22D192840C62A00E36487 /* Engine.swift */; };
A5E22D1C2840C85D00E36487 /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E22D1B2840C85D00E36487 /* App.swift */; };
@@ -214,16 +153,12 @@
A5E22D222840C8D300E36487 /* WalletEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E22D212840C8D300E36487 /* WalletEngine.swift */; };
A5E22D242840C8DB00E36487 /* SafariEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E22D232840C8DB00E36487 /* SafariEngine.swift */; };
A5E22D2C2840EAC300E36487 /* XCUIElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E22D2B2840EAC300E36487 /* XCUIElement.swift */; };
- A5E776BA29F4362D00172091 /* AlertError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E776B929F4362D00172091 /* AlertError.swift */; };
- A5F1526F2ACDC46B00D745A6 /* Web3ModalUI in Frameworks */ = {isa = PBXBuildFile; productRef = A5F1526E2ACDC46B00D745A6 /* Web3ModalUI */; };
A74D32BA2A1E25AD00CB8536 /* QueryParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = A74D32B92A1E25AD00CB8536 /* QueryParameters.swift */; };
C5133A78294125CC00A8314C /* Web3 in Frameworks */ = {isa = PBXBuildFile; productRef = C5133A77294125CC00A8314C /* Web3 */; };
C53AA4362941251C008EA57C /* DefaultSignerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59CF4F5292F83D50031A42F /* DefaultSignerFactory.swift */; };
- C54C24902AEB1B5600DA4BF6 /* WalletConnectRouter in Frameworks */ = {isa = PBXBuildFile; productRef = C54C248F2AEB1B5600DA4BF6 /* WalletConnectRouter */; };
C55D347F295DD7140004314A /* AuthRequestModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D347A295DD7140004314A /* AuthRequestModule.swift */; };
C55D3480295DD7140004314A /* AuthRequestPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D347B295DD7140004314A /* AuthRequestPresenter.swift */; };
C55D3481295DD7140004314A /* AuthRequestRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D347C295DD7140004314A /* AuthRequestRouter.swift */; };
- C55D3482295DD7140004314A /* AuthRequestInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D347D295DD7140004314A /* AuthRequestInteractor.swift */; };
C55D3483295DD7140004314A /* AuthRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D347E295DD7140004314A /* AuthRequestView.swift */; };
C55D3489295DD8CA0004314A /* PasteUriModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D3484295DD8CA0004314A /* PasteUriModule.swift */; };
C55D348A295DD8CA0004314A /* PasteUriPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D3485295DD8CA0004314A /* PasteUriPresenter.swift */; };
@@ -235,7 +170,6 @@
C55D3495295DFA750004314A /* WelcomeRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D3490295DFA750004314A /* WelcomeRouter.swift */; };
C55D3496295DFA750004314A /* WelcomeInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D3491295DFA750004314A /* WelcomeInteractor.swift */; };
C55D3497295DFA750004314A /* WelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D3492295DFA750004314A /* WelcomeView.swift */; };
- C55D349929630D440004314A /* Web3Wallet in Frameworks */ = {isa = PBXBuildFile; productRef = C55D349829630D440004314A /* Web3Wallet */; };
C55D349B2965BC2F0004314A /* TagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D349A2965BC2F0004314A /* TagsView.swift */; };
C55D34AE2965FB750004314A /* SessionProposalModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D34A92965FB750004314A /* SessionProposalModule.swift */; };
C55D34AF2965FB750004314A /* SessionProposalPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D34AA2965FB750004314A /* SessionProposalPresenter.swift */; };
@@ -264,8 +198,6 @@
C56EE275293F56D7004840D1 /* InputConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE25D293F56D6004840D1 /* InputConfig.swift */; };
C56EE276293F56D7004840D1 /* UIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE26C293F56D6004840D1 /* UIViewController.swift */; };
C56EE279293F56D7004840D1 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE268293F56D6004840D1 /* Color.swift */; };
- C56EE27B293F56F8004840D1 /* WalletConnectAuth in Frameworks */ = {isa = PBXBuildFile; productRef = C56EE27A293F56F8004840D1 /* WalletConnectAuth */; };
- C56EE27D293F56F8004840D1 /* WalletConnectChat in Frameworks */ = {isa = PBXBuildFile; productRef = C56EE27C293F56F8004840D1 /* WalletConnectChat */; };
C56EE288293F5757004840D1 /* ThirdPartyConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE286293F5757004840D1 /* ThirdPartyConfigurator.swift */; };
C56EE289293F5757004840D1 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE280293F5757004840D1 /* Application.swift */; };
C56EE28A293F5757004840D1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE27F293F5757004840D1 /* AppDelegate.swift */; };
@@ -275,7 +207,6 @@
C56EE28E293F5757004840D1 /* ApplicationConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE284293F5757004840D1 /* ApplicationConfigurator.swift */; };
C56EE28F293F5757004840D1 /* MigrationConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE283293F5757004840D1 /* MigrationConfigurator.swift */; };
C56EE2A3293F6BAF004840D1 /* UIPasteboardWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE2A2293F6BAF004840D1 /* UIPasteboardWrapper.swift */; };
- C579FEB62AFA86CD008855EB /* Web3Modal in Frameworks */ = {isa = PBXBuildFile; productRef = C579FEB52AFA86CD008855EB /* Web3Modal */; };
C579FEBA2AFCDFA6008855EB /* ConnectedSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C579FEB92AFCDFA6008855EB /* ConnectedSheetView.swift */; };
C58099352A543CD000AB58F5 /* BlinkAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C58099342A543CD000AB58F5 /* BlinkAnimation.swift */; };
C5B2F6F629705293000DBA0E /* SessionRequestModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B2F6F12970511B000DBA0E /* SessionRequestModule.swift */; };
@@ -289,13 +220,7 @@
C5B2F7052970573D000DBA0E /* SolanaSwift in Frameworks */ = {isa = PBXBuildFile; productRef = C5B2F7042970573D000DBA0E /* SolanaSwift */; };
C5B2F71029705827000DBA0E /* EthereumTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F568C32795832A00D0A289 /* EthereumTransaction.swift */; };
C5B4C4C42AF11C8B00B4274A /* SignView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B4C4C32AF11C8B00B4274A /* SignView.swift */; };
- C5B4C4CF2AF12F1600B4274A /* AuthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B4C4CE2AF12F1600B4274A /* AuthView.swift */; };
C5BE01D12AF661D70064FC88 /* NewPairingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01D02AF661D70064FC88 /* NewPairingView.swift */; };
- C5BE01D72AF691CD0064FC88 /* AuthModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01D62AF691CD0064FC88 /* AuthModule.swift */; };
- C5BE01D92AF691FE0064FC88 /* AuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01D82AF691FE0064FC88 /* AuthPresenter.swift */; };
- C5BE01DB2AF692060064FC88 /* AuthRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01DA2AF692060064FC88 /* AuthRouter.swift */; };
- C5BE01DD2AF692100064FC88 /* AuthInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01DC2AF692100064FC88 /* AuthInteractor.swift */; };
- C5BE01DF2AF692D80064FC88 /* WalletConnectRouter in Frameworks */ = {isa = PBXBuildFile; productRef = C5BE01DE2AF692D80064FC88 /* WalletConnectRouter */; };
C5BE01E22AF693080064FC88 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01E12AF693080064FC88 /* Application.swift */; };
C5BE01E32AF696540064FC88 /* SceneViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE264293F56D6004840D1 /* SceneViewController.swift */; };
C5BE01E42AF697100064FC88 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE26B293F56D6004840D1 /* UIColor.swift */; };
@@ -310,12 +235,6 @@
C5BE02022AF774CB0064FC88 /* NewPairingInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01F62AF6CA2B0064FC88 /* NewPairingInteractor.swift */; };
C5BE02032AF774CB0064FC88 /* NewPairingPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE01F42AF6CA2B0064FC88 /* NewPairingPresenter.swift */; };
C5BE02042AF7764F0064FC88 /* UIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56EE26C293F56D6004840D1 /* UIViewController.swift */; };
- C5BE020E2AF777AD0064FC88 /* MainRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE02082AF777AD0064FC88 /* MainRouter.swift */; };
- C5BE020F2AF777AD0064FC88 /* TabPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE020D2AF777AD0064FC88 /* TabPage.swift */; };
- C5BE02102AF777AD0064FC88 /* MainModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE02072AF777AD0064FC88 /* MainModule.swift */; };
- C5BE02112AF777AD0064FC88 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE020A2AF777AD0064FC88 /* MainViewController.swift */; };
- C5BE02122AF777AD0064FC88 /* MainPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE020B2AF777AD0064FC88 /* MainPresenter.swift */; };
- C5BE02132AF777AD0064FC88 /* MainInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE02092AF777AD0064FC88 /* MainInteractor.swift */; };
C5BE02142AF77A940064FC88 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C5F32A352954FE3C00A6476E /* Colors.xcassets */; };
C5BE021B2AF79B9A0064FC88 /* SessionAccountPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE02172AF79B950064FC88 /* SessionAccountPresenter.swift */; };
C5BE021C2AF79B9A0064FC88 /* SessionAccountRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE02162AF79B950064FC88 /* SessionAccountRouter.swift */; };
@@ -323,10 +242,8 @@
C5BE021E2AF79B9A0064FC88 /* SessionAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE02192AF79B950064FC88 /* SessionAccountView.swift */; };
C5BE021F2AF79B9A0064FC88 /* SessionAccountModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BE021A2AF79B960064FC88 /* SessionAccountModule.swift */; };
C5D4603A29687A5700302C7E /* DefaultSocketFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5629AEF2877F73000094373 /* DefaultSocketFactory.swift */; };
- C5DD5BE1294E09E3008FD3A4 /* Web3Wallet in Frameworks */ = {isa = PBXBuildFile; productRef = C5DD5BE0294E09E3008FD3A4 /* Web3Wallet */; };
C5F32A2C2954814200A6476E /* ConnectionDetailsModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5F32A2B2954814200A6476E /* ConnectionDetailsModule.swift */; };
C5F32A2E2954814A00A6476E /* ConnectionDetailsRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5F32A2D2954814A00A6476E /* ConnectionDetailsRouter.swift */; };
- C5F32A302954816100A6476E /* ConnectionDetailsInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5F32A2F2954816100A6476E /* ConnectionDetailsInteractor.swift */; };
C5F32A322954816C00A6476E /* ConnectionDetailsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5F32A312954816C00A6476E /* ConnectionDetailsPresenter.swift */; };
C5F32A342954817600A6476E /* ConnectionDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5F32A332954817600A6476E /* ConnectionDetailsView.swift */; };
C5F32A362954FE3C00A6476E /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C5F32A352954FE3C00A6476E /* Colors.xcassets */; };
@@ -344,7 +261,6 @@
CF1A594B29E5876600AAC16B /* DAppEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF1A594229E5876600AAC16B /* DAppEngine.swift */; };
CF1A594C29E5876600AAC16B /* RoutingEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF1A594329E5876600AAC16B /* RoutingEngine.swift */; };
CF1A594D29E5876600AAC16B /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF1A594429E5876600AAC16B /* App.swift */; };
- CF25F2892A432476009C7E49 /* WalletConnectModal in Frameworks */ = {isa = PBXBuildFile; productRef = CF25F2882A432476009C7E49 /* WalletConnectModal */; };
CF6704DF29E59DDC003326A4 /* XCUIElementQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF6704DE29E59DDC003326A4 /* XCUIElementQuery.swift */; };
CF6704E129E5A014003326A4 /* XCTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF6704E029E5A014003326A4 /* XCTestCase.swift */; };
/* End PBXBuildFile section */
@@ -406,14 +322,31 @@
764E1D5526F8DADE00A1FB15 /* WalletConnectSwiftV2 */ = {isa = PBXFileReference; lastKnownFileType = folder; name = WalletConnectSwiftV2; path = ..; sourceTree = ""; };
764E1D5626F8DB6000A1FB15 /* WalletConnectSwiftV2 */ = {isa = PBXFileReference; lastKnownFileType = folder; name = WalletConnectSwiftV2; path = ..; sourceTree = ""; };
767DC83428997F8E00080FA9 /* EthSendTransaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthSendTransaction.swift; sourceTree = ""; };
- 7694A5252874296A0001257E /* RegistryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegistryTests.swift; sourceTree = ""; };
+ 840507E22C8BAC7C00148A9B /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
84310D04298BC980000C15B6 /* MainInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainInteractor.swift; sourceTree = ""; };
8439CB88293F658E00F2F2E2 /* PushMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessage.swift; sourceTree = ""; };
+ 8445118F2C8B689D00A6A86C /* AppKitLab.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AppKitLab.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 844511912C8B689D00A6A86C /* AppKitLabApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppKitLabApp.swift; sourceTree = ""; };
+ 844511A02C8B695300A6A86C /* InputConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InputConfig.swift; sourceTree = ""; };
+ 844511A12C8B695400A6A86C /* ComponentLibraryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComponentLibraryView.swift; sourceTree = ""; };
+ 844511A22C8B695400A6A86C /* Example.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Example.entitlements; sourceTree = ""; };
+ 844511A42C8B695400A6A86C /* WCSocketFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WCSocketFactory.swift; sourceTree = ""; };
+ 844511A52C8B695400A6A86C /* DefaultCryptoProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultCryptoProvider.swift; sourceTree = ""; };
+ 844511A62C8B695500A6A86C /* ContentView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
+ 844511A82C8B695500A6A86C /* AlertPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertPresenter.swift; sourceTree = ""; };
+ 844511A92C8B695500A6A86C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ 844511C82C8BA12200A6A86C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; };
+ 844511C92C8BA69D00A6A86C /* AppKitLab.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AppKitLab.entitlements; sourceTree = ""; };
844749F329B9E5B9005F520B /* RelayIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RelayIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
844749F529B9E5B9005F520B /* RelayClientEndToEndTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayClientEndToEndTests.swift; sourceTree = ""; };
845AA7D929BA1EBA00F33739 /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; name = IntegrationTests.xctestplan; path = ExampleApp.xcodeproj/IntegrationTests.xctestplan; sourceTree = ""; };
845AA7DC29BB424800F33739 /* SmokeTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmokeTests.xctestplan; sourceTree = ""; };
845B8D8B2934B36C0084A966 /* Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = ""; };
+ 846E359E2C00654F00E63DF4 /* ConfigModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigModule.swift; sourceTree = ""; };
+ 846E35A12C0065AD00E63DF4 /* ConfigRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigRouter.swift; sourceTree = ""; };
+ 846E35A32C0065B600E63DF4 /* ConfigPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigPresenter.swift; sourceTree = ""; };
+ 846E35A52C0065C100E63DF4 /* ConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigView.swift; sourceTree = ""; };
+ 846E35A72C006C5600E63DF4 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = ""; };
847BD1D12989492500076C90 /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; };
847BD1D32989492500076C90 /* MainModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainModule.swift; sourceTree = ""; };
847BD1D42989492500076C90 /* MainPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainPresenter.swift; sourceTree = ""; };
@@ -433,6 +366,8 @@
849D7A92292E2169006A2BD4 /* NotifyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotifyTests.swift; sourceTree = ""; };
84A6E3C22A386BBC008A0571 /* Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Publisher.swift; sourceTree = ""; };
84AA01DA28CF0CD7005D48D8 /* XCTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTest.swift; sourceTree = ""; };
+ 84AEC24E2B4D1EE400E27A5B /* ActivityIndicatorManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorManager.swift; sourceTree = ""; };
+ 84AEC2502B4D42C100E27A5B /* AlertPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertPresenter.swift; sourceTree = ""; };
84B8154D2991099000FAD54E /* BuildConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuildConfiguration.swift; sourceTree = ""; };
84B8155A2992A18D00FAD54E /* NotifyMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotifyMessageViewModel.swift; sourceTree = ""; };
84CE641C27981DED00142511 /* DApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -442,14 +377,15 @@
84CE642A27981DF000142511 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
84CE642C27981DF000142511 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
84CE6453279FFE1100142511 /* Wallet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Wallet.entitlements; sourceTree = ""; };
- 84CEC64528D89D6B00D081A8 /* PairingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingTests.swift; sourceTree = ""; };
- 84D2A66528A4F51E0088AE09 /* AuthTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTests.swift; sourceTree = ""; };
+ 84D093EA2B4EA6CB005B1925 /* ActivityIndicatorManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorManager.swift; sourceTree = ""; };
+ 84D72FC62B4692770057EAF3 /* DApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DApp.entitlements; sourceTree = ""; };
84DB38F029828A7C00BFEE37 /* WalletApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WalletApp.entitlements; sourceTree = ""; };
84DB38F129828A7F00BFEE37 /* PNDecryptionService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PNDecryptionService.entitlements; sourceTree = ""; };
84DB38F22983CDAE00BFEE37 /* PushRegisterer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushRegisterer.swift; sourceTree = ""; };
84E6B84729787A8000428BAF /* PNDecryptionService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PNDecryptionService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
84E6B84929787A8000428BAF /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; };
84E6B84B29787A8000428BAF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 84F1CD392BBD414000D2A6E2 /* DAppRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DAppRelease.entitlements; sourceTree = ""; };
84F568C1279582D200D0A289 /* Signer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Signer.swift; sourceTree = ""; };
84F568C32795832A00D0A289 /* EthereumTransaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthereumTransaction.swift; sourceTree = ""; };
84FE684528ACDB4700C893FF /* RequestParams.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestParams.swift; sourceTree = ""; };
@@ -460,7 +396,6 @@
A50D53BE2ABA055700A4FD8B /* NotifyPreferencesRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotifyPreferencesRouter.swift; sourceTree = ""; };
A50D53BF2ABA055700A4FD8B /* NotifyPreferencesInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotifyPreferencesInteractor.swift; sourceTree = ""; };
A50D53C02ABA055700A4FD8B /* NotifyPreferencesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotifyPreferencesView.swift; sourceTree = ""; };
- A50F3945288005B200064555 /* Types.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Types.swift; sourceTree = ""; };
A51606F72A2F47BD00CACB92 /* DefaultBIP44Provider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultBIP44Provider.swift; sourceTree = ""; };
A51811972A52E21A00A52B15 /* ConfigurationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationService.swift; sourceTree = ""; };
A518119A2A52E83100A52B15 /* SettingsModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsModule.swift; sourceTree = ""; };
@@ -468,78 +403,18 @@
A518119C2A52E83100A52B15 /* SettingsRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsRouter.swift; sourceTree = ""; };
A518119D2A52E83100A52B15 /* SettingsInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsInteractor.swift; sourceTree = ""; };
A518119E2A52E83100A52B15 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; };
- A518A98429683FB60035247E /* Web3InboxViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Web3InboxViewController.swift; sourceTree = ""; };
- A518A98529683FB60035247E /* Web3InboxModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Web3InboxModule.swift; sourceTree = ""; };
- A518A98629683FB60035247E /* Web3InboxRouter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Web3InboxRouter.swift; sourceTree = ""; };
A518B31328E33A6500A2CE93 /* InputConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InputConfig.swift; sourceTree = ""; };
- A51AC0D828E436A3001BACF9 /* InputConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputConfig.swift; sourceTree = ""; };
- A51AC0DE28E4379F001BACF9 /* InputConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputConfig.swift; sourceTree = ""; };
- A5321C2A2A250367006CADC3 /* HistoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryTests.swift; sourceTree = ""; };
A5417BBD299BFC3E00B469F3 /* ImportAccount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportAccount.swift; sourceTree = ""; };
A541959A2934BFEF0035AD19 /* CacaoSignerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CacaoSignerTests.swift; sourceTree = ""; };
A541959B2934BFEF0035AD19 /* SignerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignerTests.swift; sourceTree = ""; };
A541959C2934BFEF0035AD19 /* EIP1271VerifierTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EIP1271VerifierTests.swift; sourceTree = ""; };
A541959D2934BFEF0035AD19 /* EIP191VerifierTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EIP191VerifierTests.swift; sourceTree = ""; };
- A561C80229DFCCDC00DF540D /* SyncTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncTests.swift; sourceTree = ""; };
- A5629AA82876A23100094373 /* ChatService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatService.swift; sourceTree = ""; };
- A5629AB82876CBC000094373 /* ChatListModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListModule.swift; sourceTree = ""; };
- A5629AB92876CBC000094373 /* ChatListPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListPresenter.swift; sourceTree = ""; };
- A5629ABA2876CBC000094373 /* ChatListRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListRouter.swift; sourceTree = ""; };
- A5629ABB2876CBC000094373 /* ChatListInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListInteractor.swift; sourceTree = ""; };
- A5629ABC2876CBC000094373 /* ChatListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListView.swift; sourceTree = ""; };
- A5629ACE2876CC5700094373 /* InviteModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteModule.swift; sourceTree = ""; };
- A5629ACF2876CC5700094373 /* InvitePresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvitePresenter.swift; sourceTree = ""; };
- A5629AD02876CC5700094373 /* InviteRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteRouter.swift; sourceTree = ""; };
- A5629AD12876CC5700094373 /* InviteInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteInteractor.swift; sourceTree = ""; };
- A5629AD22876CC5700094373 /* InviteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteView.swift; sourceTree = ""; };
- A5629AD92876CC6E00094373 /* InviteListModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteListModule.swift; sourceTree = ""; };
- A5629ADA2876CC6E00094373 /* InviteListPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteListPresenter.swift; sourceTree = ""; };
- A5629ADB2876CC6E00094373 /* InviteListRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteListRouter.swift; sourceTree = ""; };
- A5629ADC2876CC6E00094373 /* InviteListInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteListInteractor.swift; sourceTree = ""; };
- A5629ADD2876CC6E00094373 /* InviteListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteListView.swift; sourceTree = ""; };
- A5629AE32876E6D200094373 /* ThreadViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadViewModel.swift; sourceTree = ""; };
- A5629AE728772A0100094373 /* InviteViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteViewModel.swift; sourceTree = ""; };
A5629AEF2877F73000094373 /* DefaultSocketFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultSocketFactory.swift; sourceTree = ""; };
A56AC8F12AD88A5A001C8FAA /* Sequence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sequence.swift; sourceTree = ""; };
- A573C53629EC34A600E3CBFD /* SyncDerivationServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncDerivationServiceTests.swift; sourceTree = ""; };
A57879702A4EDC8100F8D10B /* TextFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldView.swift; sourceTree = ""; };
- A578FA312873036400AA7720 /* InputView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputView.swift; sourceTree = ""; };
- A578FA34287304A300AA7720 /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; };
- A578FA362873D8EE00AA7720 /* UIColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; };
- A578FA382873FCE000AA7720 /* ChatScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScrollView.swift; sourceTree = ""; };
- A578FA3C2874002400AA7720 /* View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = View.swift; sourceTree = ""; };
A57E71A5291CF76400325797 /* ETHSigner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ETHSigner.swift; sourceTree = ""; };
A57E71A7291CF8A500325797 /* SOLSigner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SOLSigner.swift; sourceTree = ""; };
A58A1ECB29BF458600A82A20 /* ENSResolverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ENSResolverTests.swift; sourceTree = ""; };
- A58E7CE828729F550082D443 /* Showcase.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Showcase.app; sourceTree = BUILT_PRODUCTS_DIR; };
- A58E7CEA28729F550082D443 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
- A58E7CEC28729F550082D443 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; };
- A58E7CF328729F550082D443 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- A58E7CF628729F550082D443 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- A58E7CF828729F550082D443 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- A58E7CFF2872A1050082D443 /* SceneViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SceneViewController.swift; sourceTree = ""; };
- A58E7D022872A1630082D443 /* String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = String.swift; sourceTree = ""; };
- A58E7D072872A45B0082D443 /* MainModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainModule.swift; sourceTree = ""; };
- A58E7D082872A45B0082D443 /* MainPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainPresenter.swift; sourceTree = ""; };
- A58E7D092872A45B0082D443 /* MainRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainRouter.swift; sourceTree = ""; };
- A58E7D122872A4A80082D443 /* Application.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = ""; };
- A58E7D142872A5410082D443 /* UIViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewController.swift; sourceTree = ""; };
- A58E7D172872A57B0082D443 /* Configurator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Configurator.swift; sourceTree = ""; };
- A58E7D182872A57B0082D443 /* ThirdPartyConfigurator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThirdPartyConfigurator.swift; sourceTree = ""; };
- A58E7D192872A57B0082D443 /* ApplicationConfigurator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplicationConfigurator.swift; sourceTree = ""; };
- A58E7D1B2872A57B0082D443 /* MigrationConfigurator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationConfigurator.swift; sourceTree = ""; };
- A58E7D1C2872A57B0082D443 /* AppearanceConfigurator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppearanceConfigurator.swift; sourceTree = ""; };
- A58E7D232872AB130082D443 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; };
- A58E7D342872D55F0082D443 /* ChatModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatModule.swift; sourceTree = ""; };
- A58E7D352872D55F0082D443 /* ChatRouter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatRouter.swift; sourceTree = ""; };
- A58E7D362872D55F0082D443 /* ChatInteractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInteractor.swift; sourceTree = ""; };
- A58E7D372872D55F0082D443 /* ChatPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPresenter.swift; sourceTree = ""; };
- A58E7D382872D55F0082D443 /* ChatView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; };
- A58E7D3E2872E99A0082D443 /* TabPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabPage.swift; sourceTree = ""; };
- A58E7D422872EE320082D443 /* MessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageView.swift; sourceTree = ""; };
- A58E7D442872EE570082D443 /* ContentMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentMessageView.swift; sourceTree = ""; };
- A58E7D472872EF610082D443 /* MessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageViewModel.swift; sourceTree = ""; };
- A58EC615299D5C6400F3452A /* PlainButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainButton.swift; sourceTree = ""; };
A59CF4F5292F83D50031A42F /* DefaultSignerFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultSignerFactory.swift; sourceTree = ""; };
A5A0843B29D2F60A000B9B17 /* DefaultCryptoProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultCryptoProvider.swift; sourceTree = ""; };
A5A4FC722840C12C00BBEC1E /* UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -551,20 +426,7 @@
A5B4F7C12ABB20AE0099AF7C /* SubscriptionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionView.swift; sourceTree = ""; };
A5B4F7C72ABB21190099AF7C /* CacheAsyncImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheAsyncImage.swift; sourceTree = ""; };
A5BB7FAC28B6AA7D00707FC6 /* QRCodeGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCodeGenerator.swift; sourceTree = ""; };
- A5C20206287D9DEE007E3188 /* WelcomeModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeModule.swift; sourceTree = ""; };
- A5C20207287D9DEE007E3188 /* WelcomePresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomePresenter.swift; sourceTree = ""; };
- A5C20208287D9DEE007E3188 /* WelcomeRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeRouter.swift; sourceTree = ""; };
- A5C2020A287D9DEE007E3188 /* WelcomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeView.swift; sourceTree = ""; };
- A5C20214287E1FD8007E3188 /* ImportModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportModule.swift; sourceTree = ""; };
- A5C20215287E1FD8007E3188 /* ImportPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportPresenter.swift; sourceTree = ""; };
- A5C20216287E1FD8007E3188 /* ImportRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportRouter.swift; sourceTree = ""; };
- A5C20217287E1FD8007E3188 /* ImportInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportInteractor.swift; sourceTree = ""; };
- A5C20218287E1FD8007E3188 /* ImportView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportView.swift; sourceTree = ""; };
- A5C20220287EA5B8007E3188 /* TextFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldView.swift; sourceTree = ""; };
- A5C20222287EA7E2007E3188 /* BrandButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrandButton.swift; sourceTree = ""; };
A5C20228287EB34C007E3188 /* AccountStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountStorage.swift; sourceTree = ""; };
- A5C2022A287EB89A007E3188 /* WelcomeInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeInteractor.swift; sourceTree = ""; };
- A5C5153229BB7A6A004210BA /* InviteType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteType.swift; sourceTree = ""; };
A5D610C72AB31EE800C20083 /* SegmentedPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentedPicker.swift; sourceTree = ""; };
A5D610C92AB3249100C20083 /* ListingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListingViewModel.swift; sourceTree = ""; };
A5D610CD2AB3594100C20083 /* ListingsAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListingsAPI.swift; sourceTree = ""; };
@@ -574,7 +436,6 @@
A5E03DED286464DB00888481 /* IntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
A5E03DF9286465C700888481 /* SignClientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignClientTests.swift; sourceTree = ""; };
A5E03DFC286465D100888481 /* Stubs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stubs.swift; sourceTree = ""; };
- A5E03E02286466F400888481 /* ChatTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTests.swift; sourceTree = ""; };
A5E03E1028646F8000888481 /* KeychainStorageMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainStorageMock.swift; sourceTree = ""; };
A5E22D192840C62A00E36487 /* Engine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Engine.swift; sourceTree = ""; };
A5E22D1B2840C85D00E36487 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = ""; };
@@ -583,13 +444,11 @@
A5E22D212840C8D300E36487 /* WalletEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletEngine.swift; sourceTree = ""; };
A5E22D232840C8DB00E36487 /* SafariEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariEngine.swift; sourceTree = ""; };
A5E22D2B2840EAC300E36487 /* XCUIElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCUIElement.swift; sourceTree = ""; };
- A5E776B929F4362D00172091 /* AlertError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertError.swift; sourceTree = ""; };
A5F48A0528E43D3F0034CBFB /* Configuration.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Configuration.xcconfig; path = ../Configuration.xcconfig; sourceTree = ""; };
A74D32B92A1E25AD00CB8536 /* QueryParameters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueryParameters.swift; sourceTree = ""; };
C55D347A295DD7140004314A /* AuthRequestModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRequestModule.swift; sourceTree = ""; };
C55D347B295DD7140004314A /* AuthRequestPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRequestPresenter.swift; sourceTree = ""; };
C55D347C295DD7140004314A /* AuthRequestRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRequestRouter.swift; sourceTree = ""; };
- C55D347D295DD7140004314A /* AuthRequestInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRequestInteractor.swift; sourceTree = ""; };
C55D347E295DD7140004314A /* AuthRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRequestView.swift; sourceTree = ""; };
C55D3484295DD8CA0004314A /* PasteUriModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteUriModule.swift; sourceTree = ""; };
C55D3485295DD8CA0004314A /* PasteUriPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteUriPresenter.swift; sourceTree = ""; };
@@ -647,12 +506,7 @@
C5B2F6F42970511B000DBA0E /* SessionRequestInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionRequestInteractor.swift; sourceTree = ""; };
C5B2F6F52970511B000DBA0E /* SessionRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionRequestView.swift; sourceTree = ""; };
C5B4C4C32AF11C8B00B4274A /* SignView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignView.swift; sourceTree = ""; };
- C5B4C4CE2AF12F1600B4274A /* AuthView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthView.swift; sourceTree = ""; };
C5BE01D02AF661D70064FC88 /* NewPairingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPairingView.swift; sourceTree = ""; };
- C5BE01D62AF691CD0064FC88 /* AuthModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthModule.swift; sourceTree = ""; };
- C5BE01D82AF691FE0064FC88 /* AuthPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthPresenter.swift; sourceTree = ""; };
- C5BE01DA2AF692060064FC88 /* AuthRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRouter.swift; sourceTree = ""; };
- C5BE01DC2AF692100064FC88 /* AuthInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInteractor.swift; sourceTree = ""; };
C5BE01E12AF693080064FC88 /* Application.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = ""; };
C5BE01ED2AF6C9DF0064FC88 /* SignPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignPresenter.swift; sourceTree = ""; };
C5BE01EE2AF6C9DF0064FC88 /* SignModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignModule.swift; sourceTree = ""; };
@@ -662,12 +516,6 @@
C5BE01F42AF6CA2B0064FC88 /* NewPairingPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPairingPresenter.swift; sourceTree = ""; };
C5BE01F52AF6CA2B0064FC88 /* NewPairingModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPairingModule.swift; sourceTree = ""; };
C5BE01F62AF6CA2B0064FC88 /* NewPairingInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPairingInteractor.swift; sourceTree = ""; };
- C5BE02072AF777AD0064FC88 /* MainModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainModule.swift; sourceTree = ""; };
- C5BE02082AF777AD0064FC88 /* MainRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainRouter.swift; sourceTree = ""; };
- C5BE02092AF777AD0064FC88 /* MainInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainInteractor.swift; sourceTree = ""; };
- C5BE020A2AF777AD0064FC88 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; };
- C5BE020B2AF777AD0064FC88 /* MainPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainPresenter.swift; sourceTree = ""; };
- C5BE020D2AF777AD0064FC88 /* TabPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabPage.swift; sourceTree = ""; };
C5BE02162AF79B950064FC88 /* SessionAccountRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionAccountRouter.swift; sourceTree = ""; };
C5BE02172AF79B950064FC88 /* SessionAccountPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionAccountPresenter.swift; sourceTree = ""; };
C5BE02182AF79B950064FC88 /* SessionAccountInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionAccountInteractor.swift; sourceTree = ""; };
@@ -675,7 +523,6 @@
C5BE021A2AF79B960064FC88 /* SessionAccountModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionAccountModule.swift; sourceTree = ""; };
C5F32A2B2954814200A6476E /* ConnectionDetailsModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsModule.swift; sourceTree = ""; };
C5F32A2D2954814A00A6476E /* ConnectionDetailsRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsRouter.swift; sourceTree = ""; };
- C5F32A2F2954816100A6476E /* ConnectionDetailsInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsInteractor.swift; sourceTree = ""; };
C5F32A312954816C00A6476E /* ConnectionDetailsPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsPresenter.swift; sourceTree = ""; };
C5F32A332954817600A6476E /* ConnectionDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsView.swift; sourceTree = ""; };
C5F32A352954FE3C00A6476E /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = ""; };
@@ -701,6 +548,20 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 8445118C2C8B689D00A6A86C /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 844511BC2C8B6BE600A6A86C /* Web3ContractABI in Frameworks */,
+ 844511C42C8B6C0D00A6A86C /* ReownAppKit in Frameworks */,
+ 844511BA2C8B6BC800A6A86C /* Atlantis in Frameworks */,
+ 844511B62C8B69F200A6A86C /* Starscream in Frameworks */,
+ 844511BE2C8B6BF000A6A86C /* ReownAppKitUI in Frameworks */,
+ 844511C22C8B6C0600A6A86C /* SwiftMessages in Frameworks */,
+ 844511C02C8B6BF800A6A86C /* Web3 in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
844749F029B9E5B9005F520B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -715,15 +576,13 @@
buildActionMask = 2147483647;
files = (
8448F1D427E4726F0000B866 /* WalletConnect in Frameworks */,
- C579FEB62AFA86CD008855EB /* Web3Modal in Frameworks */,
- C5BE01DF2AF692D80064FC88 /* WalletConnectRouter in Frameworks */,
+ 8421447B2C80A2B8004FF494 /* ReownAppKit in Frameworks */,
A5B6C0F12A6EAB0800927332 /* WalletConnectNotify in Frameworks */,
A54195A52934E83F0035AD19 /* Web3 in Frameworks */,
- 8487A9442A836C2A0003D5AF /* Sentry in Frameworks */,
A5D85228286333E300DAF5C3 /* Starscream in Frameworks */,
+ 8486EDD32B4F2EA6008E53C3 /* SwiftMessages in Frameworks */,
84943C7B2A9BA206007EBAC2 /* Mixpanel in Frameworks */,
A573C53929EC365000E3CBFD /* HDWalletKit in Frameworks */,
- A5BB7FA328B6A50400707FC6 /* WalletConnectAuth in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -732,25 +591,11 @@
buildActionMask = 2147483647;
files = (
A5A650CA2B062A1400F9AD4B /* Mixpanel in Frameworks */,
+ 842144812C818684004FF494 /* ReownWalletKit in Frameworks */,
A5B6C0F72A6EAB3200927332 /* WalletConnectNotify in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- A58E7CE528729F550082D443 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- A58EC618299D665A00F3452A /* Web3Inbox in Frameworks */,
- A5629AEA2877F2D600094373 /* WalletConnectChat in Frameworks */,
- CF25F2892A432476009C7E49 /* WalletConnectModal in Frameworks */,
- A561C80029DF32CE00DF540D /* HDWalletKit in Frameworks */,
- A59FAEC928B7B93A002BB66F /* Web3 in Frameworks */,
- A5629AF22877F75100094373 /* Starscream in Frameworks */,
- A59F877628B5462900A9CD80 /* WalletConnectAuth in Frameworks */,
- A58EC611299D57B800F3452A /* AsyncButton in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
A5A4FC6F2840C12C00BBEC1E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -763,15 +608,11 @@
buildActionMask = 2147483647;
files = (
A5E03DFF2864662500888481 /* WalletConnect in Frameworks */,
- A561C80529DFCD4500DF540D /* WalletConnectSync in Frameworks */,
A5E03DF52864651200888481 /* Starscream in Frameworks */,
- A50DF19D2A25084A0036EA6C /* WalletConnectHistory in Frameworks */,
A5C8BE85292FE20B006CC85C /* Web3 in Frameworks */,
- 84DDB4ED28ABB663003D66ED /* WalletConnectAuth in Frameworks */,
- C5DD5BE1294E09E3008FD3A4 /* Web3Wallet in Frameworks */,
A5B6C0F32A6EAB1700927332 /* WalletConnectNotify in Frameworks */,
+ 842144832C818928004FF494 /* ReownWalletKit in Frameworks */,
A573C53B29EC365800E3CBFD /* HDWalletKit in Frameworks */,
- A5E03E01286466EA00888481 /* WalletConnectChat in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -781,17 +622,15 @@
files = (
A573C53D29EC366500E3CBFD /* HDWalletKit in Frameworks */,
A59D25EE2AB3672700D7EA3A /* AsyncButton in Frameworks */,
- C56EE27D293F56F8004840D1 /* WalletConnectChat in Frameworks */,
C5133A78294125CC00A8314C /* Web3 in Frameworks */,
C5B2F7052970573D000DBA0E /* SolanaSwift in Frameworks */,
- 8487A9462A836C3F0003D5AF /* Sentry in Frameworks */,
- C55D349929630D440004314A /* Web3Wallet in Frameworks */,
- A5F1526F2ACDC46B00D745A6 /* Web3ModalUI in Frameworks */,
C56EE255293F569A004840D1 /* Starscream in Frameworks */,
+ 84AEC2542B4D43CD00E27A5B /* SwiftMessages in Frameworks */,
A5B6C0F52A6EAB2800927332 /* WalletConnectNotify in Frameworks */,
- C56EE27B293F56F8004840D1 /* WalletConnectAuth in Frameworks */,
- C54C24902AEB1B5600DA4BF6 /* WalletConnectRouter in Frameworks */,
84943C7D2A9BA328007EBAC2 /* Mixpanel in Frameworks */,
+ 8421447F2C81863A004FF494 /* ReownWalletKit in Frameworks */,
+ 8421447D2C80A544004FF494 /* ReownAppKitUI in Frameworks */,
+ 84CA52172C88965C0069BB33 /* ReownRouter in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -819,11 +658,11 @@
84CE641D27981DED00142511 /* DApp */,
A5A4FC732840C12C00BBEC1E /* UITests */,
A5E03DEE286464DB00888481 /* IntegrationTests */,
- A58E7CE928729F550082D443 /* Showcase */,
C56EE21C293F55ED004840D1 /* WalletApp */,
84E6B84829787A8000428BAF /* PNDecryptionService */,
844749F429B9E5B9005F520B /* RelayIntegrationTests */,
CF1A593129E5873D00AAC16B /* EchoUITests */,
+ 844511902C8B689D00A6A86C /* AppKitLab */,
764E1D3D26F8D3FC00A1FB15 /* Products */,
764E1D5326F8DAC800A1FB15 /* Frameworks */,
764E1D5626F8DB6000A1FB15 /* WalletConnectSwiftV2 */,
@@ -836,11 +675,11 @@
84CE641C27981DED00142511 /* DApp.app */,
A5A4FC722840C12C00BBEC1E /* UITests.xctest */,
A5E03DED286464DB00888481 /* IntegrationTests.xctest */,
- A58E7CE828729F550082D443 /* Showcase.app */,
C56EE21B293F55ED004840D1 /* WalletApp.app */,
84E6B84729787A8000428BAF /* PNDecryptionService.appex */,
844749F329B9E5B9005F520B /* RelayIntegrationTests.xctest */,
CF1A593029E5873D00AAC16B /* EchoUITests.xctest */,
+ 8445118F2C8B689D00A6A86C /* AppKitLab.app */,
);
name = Products;
sourceTree = "";
@@ -863,6 +702,33 @@
path = Helpers;
sourceTree = "";
};
+ 840507E12C8BAC4100148A9B /* Preview Content */ = {
+ isa = PBXGroup;
+ children = (
+ 840507E22C8BAC7C00148A9B /* Preview Assets.xcassets */,
+ );
+ path = "Preview Content";
+ sourceTree = "";
+ };
+ 844511902C8B689D00A6A86C /* AppKitLab */ = {
+ isa = PBXGroup;
+ children = (
+ 844511C92C8BA69D00A6A86C /* AppKitLab.entitlements */,
+ 844511C82C8BA12200A6A86C /* Info.plist */,
+ 844511A82C8B695500A6A86C /* AlertPresenter.swift */,
+ 844511A92C8B695500A6A86C /* Assets.xcassets */,
+ 844511A12C8B695400A6A86C /* ComponentLibraryView.swift */,
+ 840507E12C8BAC4100148A9B /* Preview Content */,
+ 844511A62C8B695500A6A86C /* ContentView.swift */,
+ 844511A52C8B695400A6A86C /* DefaultCryptoProvider.swift */,
+ 844511A22C8B695400A6A86C /* Example.entitlements */,
+ 844511A02C8B695300A6A86C /* InputConfig.swift */,
+ 844511A42C8B695400A6A86C /* WCSocketFactory.swift */,
+ 844511912C8B689D00A6A86C /* AppKitLabApp.swift */,
+ );
+ path = AppKitLab;
+ sourceTree = "";
+ };
844749F429B9E5B9005F520B /* RelayIntegrationTests */ = {
isa = PBXGroup;
children = (
@@ -871,6 +737,17 @@
path = RelayIntegrationTests;
sourceTree = "";
};
+ 846E35A02C00655500E63DF4 /* Configuration */ = {
+ isa = PBXGroup;
+ children = (
+ 846E359E2C00654F00E63DF4 /* ConfigModule.swift */,
+ 846E35A52C0065C100E63DF4 /* ConfigView.swift */,
+ 846E35A32C0065B600E63DF4 /* ConfigPresenter.swift */,
+ 846E35A12C0065AD00E63DF4 /* ConfigRouter.swift */,
+ );
+ path = Configuration;
+ sourceTree = "";
+ };
847BD1DB2989493F00076C90 /* Main */ = {
isa = PBXGroup;
children = (
@@ -972,11 +849,14 @@
84CE641D27981DED00142511 /* DApp */ = {
isa = PBXGroup;
children = (
+ 84F1CD392BBD414000D2A6E2 /* DAppRelease.entitlements */,
+ 84D72FC62B4692770057EAF3 /* DApp.entitlements */,
C5BE01E02AF692F80064FC88 /* ApplicationLayer */,
C5BE02202AF7DDE70064FC88 /* Modules */,
A5BB7FAB28B6AA7100707FC6 /* Common */,
84CE641E27981DED00142511 /* AppDelegate.swift */,
84CE642027981DED00142511 /* SceneDelegate.swift */,
+ 846E35A72C006C5600E63DF4 /* Constants.swift */,
84CE642727981DF000142511 /* Assets.xcassets */,
84CE642927981DF000142511 /* LaunchScreen.storyboard */,
84CE642C27981DF000142511 /* Info.plist */,
@@ -984,20 +864,11 @@
path = DApp;
sourceTree = "";
};
- 84CEC64728D8A98900D081A8 /* Pairing */ = {
- isa = PBXGroup;
- children = (
- 84CEC64528D89D6B00D081A8 /* PairingTests.swift */,
- );
- path = Pairing;
- sourceTree = "";
- };
84D2A66728A4F5260088AE09 /* Auth */ = {
isa = PBXGroup;
children = (
A58A1ECA29BF457800A82A20 /* ENS */,
A54195992934BFDD0035AD19 /* Signer */,
- 84D2A66528A4F51E0088AE09 /* AuthTests.swift */,
);
path = Auth;
sourceTree = "";
@@ -1025,14 +896,6 @@
path = NotifySettings;
sourceTree = "";
};
- A50F3944288005A700064555 /* Types */ = {
- isa = PBXGroup;
- children = (
- A50F3945288005B200064555 /* Types.swift */,
- );
- path = Types;
- sourceTree = "";
- };
A51811992A52E82100A52B15 /* Settings */ = {
isa = PBXGroup;
children = (
@@ -1045,14 +908,6 @@
path = Settings;
sourceTree = "";
};
- A5321C292A25035A006CADC3 /* History */ = {
- isa = PBXGroup;
- children = (
- A5321C2A2A250367006CADC3 /* HistoryTests.swift */,
- );
- path = History;
- sourceTree = "";
- };
A54195992934BFDD0035AD19 /* Signer */ = {
isa = PBXGroup;
children = (
@@ -1065,87 +920,6 @@
path = Signer;
sourceTree = "";
};
- A561C80129DFCCD300DF540D /* Sync */ = {
- isa = PBXGroup;
- children = (
- A561C80229DFCCDC00DF540D /* SyncTests.swift */,
- A573C53629EC34A600E3CBFD /* SyncDerivationServiceTests.swift */,
- );
- path = Sync;
- sourceTree = "";
- };
- A5629AA42876A19D00094373 /* DomainLayer */ = {
- isa = PBXGroup;
- children = (
- A5629AEB2877F69C00094373 /* Chat */,
- );
- path = DomainLayer;
- sourceTree = "";
- };
- A5629AB72876CBA700094373 /* ChatList */ = {
- isa = PBXGroup;
- children = (
- A5629AE5287729EF00094373 /* Models */,
- A5629AB82876CBC000094373 /* ChatListModule.swift */,
- A5629AB92876CBC000094373 /* ChatListPresenter.swift */,
- A5629ABA2876CBC000094373 /* ChatListRouter.swift */,
- A5629ABB2876CBC000094373 /* ChatListInteractor.swift */,
- A5629ABC2876CBC000094373 /* ChatListView.swift */,
- );
- path = ChatList;
- sourceTree = "";
- };
- A5629ACD2876CC4A00094373 /* Invite */ = {
- isa = PBXGroup;
- children = (
- A5629ACE2876CC5700094373 /* InviteModule.swift */,
- A5629ACF2876CC5700094373 /* InvitePresenter.swift */,
- A5629AD02876CC5700094373 /* InviteRouter.swift */,
- A5629AD12876CC5700094373 /* InviteInteractor.swift */,
- A5629AD22876CC5700094373 /* InviteView.swift */,
- );
- path = Invite;
- sourceTree = "";
- };
- A5629AD82876CC5B00094373 /* InviteList */ = {
- isa = PBXGroup;
- children = (
- A5629AE6287729F800094373 /* Models */,
- A5629AD92876CC6E00094373 /* InviteListModule.swift */,
- A5629ADA2876CC6E00094373 /* InviteListPresenter.swift */,
- A5629ADB2876CC6E00094373 /* InviteListRouter.swift */,
- A5629ADC2876CC6E00094373 /* InviteListInteractor.swift */,
- A5629ADD2876CC6E00094373 /* InviteListView.swift */,
- );
- path = InviteList;
- sourceTree = "";
- };
- A5629AE5287729EF00094373 /* Models */ = {
- isa = PBXGroup;
- children = (
- A5629AE32876E6D200094373 /* ThreadViewModel.swift */,
- A5E776B929F4362D00172091 /* AlertError.swift */,
- );
- path = Models;
- sourceTree = "";
- };
- A5629AE6287729F800094373 /* Models */ = {
- isa = PBXGroup;
- children = (
- A5629AE728772A0100094373 /* InviteViewModel.swift */,
- A5C5153229BB7A6A004210BA /* InviteType.swift */,
- );
- path = Models;
- sourceTree = "";
- };
- A5629AEB2877F69C00094373 /* Chat */ = {
- isa = PBXGroup;
- children = (
- A5629AA82876A23100094373 /* ChatService.swift */,
- );
- path = Chat;
- sourceTree = "";
- };
A56AC8F02AD88A4B001C8FAA /* Foundation */ = {
isa = PBXGroup;
children = (
@@ -1154,16 +928,6 @@
path = Foundation;
sourceTree = "";
};
- A574B3592964570000C2BB91 /* Web3Inbox */ = {
- isa = PBXGroup;
- children = (
- A518A98529683FB60035247E /* Web3InboxModule.swift */,
- A518A98629683FB60035247E /* Web3InboxRouter.swift */,
- A518A98429683FB60035247E /* Web3InboxViewController.swift */,
- );
- path = Web3Inbox;
- sourceTree = "";
- };
A578796F2A4EDC6B00F8D10B /* Views */ = {
isa = PBXGroup;
children = (
@@ -1172,32 +936,6 @@
path = Views;
sourceTree = "";
};
- A578FA332873049400AA7720 /* Style */ = {
- isa = PBXGroup;
- children = (
- A578FA34287304A300AA7720 /* Color.swift */,
- );
- path = Style;
- sourceTree = "";
- };
- A578FA3A2874001100AA7720 /* UIKit */ = {
- isa = PBXGroup;
- children = (
- A58E7D142872A5410082D443 /* UIViewController.swift */,
- A58E7D022872A1630082D443 /* String.swift */,
- A578FA362873D8EE00AA7720 /* UIColor.swift */,
- );
- path = UIKit;
- sourceTree = "";
- };
- A578FA3B2874001900AA7720 /* SwiftUI */ = {
- isa = PBXGroup;
- children = (
- A578FA3C2874002400AA7720 /* View.swift */,
- );
- path = SwiftUI;
- sourceTree = "";
- };
A57E71A4291CF73300325797 /* Signer */ = {
isa = PBXGroup;
children = (
@@ -1216,164 +954,6 @@
path = ENS;
sourceTree = "";
};
- A58E7CE928729F550082D443 /* Showcase */ = {
- isa = PBXGroup;
- children = (
- A58E7D052872A4330082D443 /* Classes */,
- A58E7CFD2872A0F80082D443 /* Common */,
- A58E7CFC28729F9E0082D443 /* Other */,
- );
- path = Showcase;
- sourceTree = "";
- };
- A58E7CFC28729F9E0082D443 /* Other */ = {
- isa = PBXGroup;
- children = (
- A58E7CF328729F550082D443 /* Assets.xcassets */,
- A58E7CF528729F550082D443 /* LaunchScreen.storyboard */,
- A58E7CF828729F550082D443 /* Info.plist */,
- );
- path = Other;
- sourceTree = "";
- };
- A58E7CFD2872A0F80082D443 /* Common */ = {
- isa = PBXGroup;
- children = (
- A51AC0DE28E4379F001BACF9 /* InputConfig.swift */,
- A50F3944288005A700064555 /* Types */,
- A5C2021F287EA5AF007E3188 /* Components */,
- A578FA332873049400AA7720 /* Style */,
- A58E7D012872A1430082D443 /* Extensions */,
- A58E7CFE2872A1050082D443 /* VIPER */,
- );
- path = Common;
- sourceTree = "";
- };
- A58E7CFE2872A1050082D443 /* VIPER */ = {
- isa = PBXGroup;
- children = (
- A58E7CFF2872A1050082D443 /* SceneViewController.swift */,
- );
- path = VIPER;
- sourceTree = "";
- };
- A58E7D012872A1430082D443 /* Extensions */ = {
- isa = PBXGroup;
- children = (
- A578FA3B2874001900AA7720 /* SwiftUI */,
- A578FA3A2874001100AA7720 /* UIKit */,
- );
- path = Extensions;
- sourceTree = "";
- };
- A58E7D052872A4330082D443 /* Classes */ = {
- isa = PBXGroup;
- children = (
- A5629AA42876A19D00094373 /* DomainLayer */,
- A58E7D112872A49E0082D443 /* ApplicationLayer */,
- A58E7D062872A4390082D443 /* PresentationLayer */,
- );
- path = Classes;
- sourceTree = "";
- };
- A58E7D062872A4390082D443 /* PresentationLayer */ = {
- isa = PBXGroup;
- children = (
- A574B3592964570000C2BB91 /* Web3Inbox */,
- A59F876828B53E6400A9CD80 /* Chat */,
- );
- path = PresentationLayer;
- sourceTree = "";
- };
- A58E7D112872A49E0082D443 /* ApplicationLayer */ = {
- isa = PBXGroup;
- children = (
- A58E7D162872A57B0082D443 /* Configurator */,
- A58E7D122872A4A80082D443 /* Application.swift */,
- A58E7CEA28729F550082D443 /* AppDelegate.swift */,
- A58E7CEC28729F550082D443 /* SceneDelegate.swift */,
- );
- path = ApplicationLayer;
- sourceTree = "";
- };
- A58E7D162872A57B0082D443 /* Configurator */ = {
- isa = PBXGroup;
- children = (
- A58E7D172872A57B0082D443 /* Configurator.swift */,
- A58E7D182872A57B0082D443 /* ThirdPartyConfigurator.swift */,
- A58E7D192872A57B0082D443 /* ApplicationConfigurator.swift */,
- A58E7D1B2872A57B0082D443 /* MigrationConfigurator.swift */,
- A58E7D1C2872A57B0082D443 /* AppearanceConfigurator.swift */,
- );
- path = Configurator;
- sourceTree = "";
- };
- A58E7D282872D52A0082D443 /* Main */ = {
- isa = PBXGroup;
- children = (
- A58E7D402872E9A10082D443 /* Model */,
- A58E7D072872A45B0082D443 /* MainModule.swift */,
- A58E7D082872A45B0082D443 /* MainPresenter.swift */,
- A58E7D092872A45B0082D443 /* MainRouter.swift */,
- A58E7D232872AB130082D443 /* MainViewController.swift */,
- );
- path = Main;
- sourceTree = "