├── .env.DApp
├── .env.Showcase
├── .env.WalletApp
├── .envrc
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── config.yml
│ └── feature_request.md
├── actions
│ ├── build
│ │ └── action.yml
│ └── run_tests_without_building
│ │ └── action.yml
├── pull_request_template.md
├── scripts
│ └── set-user-agent.sh
└── workflows
│ ├── build_artifacts.yml
│ ├── cd.yml
│ ├── ci.yml
│ ├── cocoapods.yml
│ ├── deploy_pages.yml
│ └── release.yml
├── .gitignore
├── .swiftlint.yml
├── .swiftpm
└── xcode
│ ├── package.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ └── xcschemes
│ ├── CommonsTests.xcscheme
│ ├── Database.xcscheme
│ ├── EventsTests.xcscheme
│ ├── NotifyTests.xcscheme
│ ├── WalletConnect-Package.xcscheme
│ ├── WalletConnectKMSTests.xcscheme
│ ├── WalletConnectModal.xcscheme
│ ├── WalletConnectNotify.xcscheme
│ ├── WalletConnectPush.xcscheme
│ ├── WalletConnectSignTests.xcscheme
│ └── WalletConnectUtilsTests.xcscheme
├── Configuration.xcconfig
├── Example
├── DApp
│ ├── AppDelegate.swift
│ ├── ApplicationLayer
│ │ └── Application.swift
│ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon-1.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x-1.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x-1.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x-1.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── ItunesArtwork@2x.png
│ │ ├── AppIcon-2.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x-1.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x-1.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x-1.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── ItunesArtwork@2x.png
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x-1.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x-1.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x-1.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── ItunesArtwork@2x.png
│ │ ├── Contents.json
│ │ ├── auth.imageset
│ │ │ ├── Contents.json
│ │ │ └── auth.pdf
│ │ ├── copy.imageset
│ │ │ ├── Contents.json
│ │ │ └── copy.pdf
│ │ ├── eip155:1.imageset
│ │ │ ├── Contents.json
│ │ │ └── ethereum (1).png
│ │ ├── eip155:137.imageset
│ │ │ ├── Contents.json
│ │ │ └── coin.png
│ │ ├── ethereum.imageset
│ │ │ ├── Contents.json
│ │ │ └── eth.pdf
│ │ ├── exit.imageset
│ │ │ ├── Contents.json
│ │ │ └── exit.pdf
│ │ ├── pen.imageset
│ │ │ ├── Contents.json
│ │ │ └── pen.pdf
│ │ ├── polygon.imageset
│ │ │ ├── Contents.json
│ │ │ └── matic.pdf
│ │ ├── profile.imageset
│ │ │ ├── Contents.json
│ │ │ └── profile.pdf
│ │ ├── solana.imageset
│ │ │ ├── Contents.json
│ │ │ └── sol.pdf
│ │ └── solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset
│ │ │ ├── Contents.json
│ │ │ └── solana (1).png
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ ├── Common
│ │ ├── ActivityIndicatorManager.swift
│ │ └── QRCodeGenerator.swift
│ ├── Constants.swift
│ ├── DApp.entitlements
│ ├── DAppRelease.entitlements
│ ├── Info.plist
│ ├── Modules
│ │ ├── Configuration
│ │ │ ├── ConfigModule.swift
│ │ │ ├── ConfigPresenter.swift
│ │ │ ├── ConfigRouter.swift
│ │ │ └── ConfigView.swift
│ │ └── Sign
│ │ │ ├── NewPairing
│ │ │ ├── NewPairingInteractor.swift
│ │ │ ├── NewPairingModule.swift
│ │ │ ├── NewPairingPresenter.swift
│ │ │ ├── NewPairingRouter.swift
│ │ │ └── NewPairingView.swift
│ │ │ ├── SessionAccount
│ │ │ ├── SessionAccountInteractor.swift
│ │ │ ├── SessionAccountModule.swift
│ │ │ ├── SessionAccountPresenter.swift
│ │ │ ├── SessionAccountRouter.swift
│ │ │ └── SessionAccountView.swift
│ │ │ ├── SignInteractor.swift
│ │ │ ├── SignModule.swift
│ │ │ ├── SignPresenter.swift
│ │ │ ├── SignRouter.swift
│ │ │ └── SignView.swift
│ └── SceneDelegate.swift
├── EchoUITests
│ ├── Engine
│ │ ├── App.swift
│ │ ├── DAppEngine.swift
│ │ ├── Engine.swift
│ │ ├── RoutingEngine.swift
│ │ └── WalletEngine.swift
│ ├── Extensions
│ │ ├── XCTestCase.swift
│ │ ├── XCUIElement.swift
│ │ └── XCUIElementQuery.swift
│ └── Tests
│ │ └── PushNotificationTests.swift
├── ExampleApp.xcodeproj
│ ├── IntegrationTests.xctestplan
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── swiftpm
│ │ │ └── Package.resolved
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── BuildAll.xcscheme
│ │ ├── DApp.xcscheme
│ │ ├── EchoUITests.xcscheme
│ │ ├── IntegrationTests.xcscheme
│ │ ├── PNDecryptionService.xcscheme
│ │ ├── RelayIntegrationTests.xcscheme
│ │ ├── Showcase.xcscheme
│ │ ├── UITests.xcscheme
│ │ ├── Wallet.xcscheme
│ │ ├── WalletApp.xcscheme
│ │ ├── WalletConnect.xcscheme
│ │ ├── WalletConnectAuth.xcscheme
│ │ ├── WalletConnectIdentity.xcscheme
│ │ ├── WalletConnectJWT.xcscheme
│ │ ├── WalletConnectNetworking.xcscheme
│ │ ├── WalletConnectPairing.xcscheme
│ │ ├── WalletConnectRouter.xcscheme
│ │ ├── WalletConnectSigner.xcscheme
│ │ ├── WalletConnectVerify.xcscheme
│ │ └── Web3Wallet.xcscheme
├── ExampleApp
│ └── SessionDetails
│ │ └── SessionDetailsViewController.swift
├── Gemfile
├── Gemfile.lock
├── IntegrationTests
│ ├── Auth
│ │ ├── ENS
│ │ │ └── ENSResolverTests.swift
│ │ └── Signer
│ │ │ ├── CacaoSignerTests.swift
│ │ │ ├── EIP1271VerifierTests.swift
│ │ │ ├── EIP191VerifierTests.swift
│ │ │ ├── EIP55Tests.swift
│ │ │ └── SignerTests.swift
│ ├── Push
│ │ ├── NotifyTests.swift
│ │ └── Publisher.swift
│ ├── Sign
│ │ ├── Helpers
│ │ │ ├── EthSendTransaction.swift
│ │ │ └── XCTest.swift
│ │ └── SignClientTests.swift
│ ├── Stubs
│ │ ├── Account.swift
│ │ ├── PushMessage.swift
│ │ ├── RequestParams.swift
│ │ └── Stubs.swift
│ └── XPlatform
│ │ └── Web3Wallet
│ │ └── XPlatformW3WTests.swift
├── PNDecryptionService
│ ├── Info.plist
│ ├── NotificationService.swift
│ ├── PNDecryptionService.entitlements
│ └── PNDecryptionServiceRelease.entitlements
├── RelayIntegrationTests.xctestplan
├── RelayIntegrationTests
│ └── RelayClientEndToEndTests.swift
├── Shared
│ ├── AccountStorage.swift
│ ├── AlertPresenter.swift
│ ├── DefaultBIP44Provider.swift
│ ├── DefaultCryptoProvider.swift
│ ├── DefaultSignerFactory.swift
│ ├── DefaultSocketFactory.swift
│ ├── ImportAccount.swift
│ ├── InputConfig.swift
│ ├── ProfilingService.swift
│ ├── Signer
│ │ ├── ETHSigner.swift
│ │ ├── SOLSigner.swift
│ │ └── Signer.swift
│ └── Tests
│ │ ├── InputConfig.swift
│ │ └── KeychainStorageMock.swift
├── Showcase
│ ├── Classes
│ │ ├── ApplicationLayer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Application.swift
│ │ │ ├── Configurator
│ │ │ │ ├── AppearanceConfigurator.swift
│ │ │ │ ├── ApplicationConfigurator.swift
│ │ │ │ ├── Configurator.swift
│ │ │ │ ├── MigrationConfigurator.swift
│ │ │ │ └── ThirdPartyConfigurator.swift
│ │ │ └── SceneDelegate.swift
│ │ ├── DomainLayer
│ │ │ └── Chat
│ │ │ │ └── ChatService.swift
│ │ └── PresentationLayer
│ │ │ ├── Chat
│ │ │ ├── Chat
│ │ │ │ ├── ChatInteractor.swift
│ │ │ │ ├── ChatModule.swift
│ │ │ │ ├── ChatPresenter.swift
│ │ │ │ ├── ChatRouter.swift
│ │ │ │ ├── ChatView.swift
│ │ │ │ ├── Models
│ │ │ │ │ └── MessageViewModel.swift
│ │ │ │ └── Views
│ │ │ │ │ ├── ChatScrollView.swift
│ │ │ │ │ ├── ContentMessageView.swift
│ │ │ │ │ └── MessageView.swift
│ │ │ ├── ChatList
│ │ │ │ ├── ChatListInteractor.swift
│ │ │ │ ├── ChatListModule.swift
│ │ │ │ ├── ChatListPresenter.swift
│ │ │ │ ├── ChatListRouter.swift
│ │ │ │ ├── ChatListView.swift
│ │ │ │ └── Models
│ │ │ │ │ ├── AlertError.swift
│ │ │ │ │ └── ThreadViewModel.swift
│ │ │ ├── Import
│ │ │ │ ├── ImportInteractor.swift
│ │ │ │ ├── ImportModule.swift
│ │ │ │ ├── ImportPresenter.swift
│ │ │ │ ├── ImportRouter.swift
│ │ │ │ └── ImportView.swift
│ │ │ ├── Invite
│ │ │ │ ├── InviteInteractor.swift
│ │ │ │ ├── InviteModule.swift
│ │ │ │ ├── InvitePresenter.swift
│ │ │ │ ├── InviteRouter.swift
│ │ │ │ └── InviteView.swift
│ │ │ ├── InviteList
│ │ │ │ ├── InviteListInteractor.swift
│ │ │ │ ├── InviteListModule.swift
│ │ │ │ ├── InviteListPresenter.swift
│ │ │ │ ├── InviteListRouter.swift
│ │ │ │ ├── InviteListView.swift
│ │ │ │ └── Models
│ │ │ │ │ ├── InviteType.swift
│ │ │ │ │ └── InviteViewModel.swift
│ │ │ ├── Main
│ │ │ │ ├── MainModule.swift
│ │ │ │ ├── MainPresenter.swift
│ │ │ │ ├── MainRouter.swift
│ │ │ │ ├── MainViewController.swift
│ │ │ │ └── Model
│ │ │ │ │ └── TabPage.swift
│ │ │ └── Welcome
│ │ │ │ ├── WelcomeInteractor.swift
│ │ │ │ ├── WelcomeModule.swift
│ │ │ │ ├── WelcomePresenter.swift
│ │ │ │ ├── WelcomeRouter.swift
│ │ │ │ └── WelcomeView.swift
│ │ │ └── Web3Inbox
│ │ │ ├── Web3InboxModule.swift
│ │ │ ├── Web3InboxRouter.swift
│ │ │ └── Web3InboxViewController.swift
│ ├── Common
│ │ ├── Components
│ │ │ ├── BrandButton.swift
│ │ │ ├── InputView.swift
│ │ │ ├── PlainButton.swift
│ │ │ └── TextFieldView.swift
│ │ ├── Extensions
│ │ │ ├── SwiftUI
│ │ │ │ └── View.swift
│ │ │ └── UIKit
│ │ │ │ ├── String.swift
│ │ │ │ ├── UIColor.swift
│ │ │ │ └── UIViewController.swift
│ │ ├── InputConfig.swift
│ │ ├── Style
│ │ │ └── Color.swift
│ │ ├── Types
│ │ │ └── Types.swift
│ │ └── VIPER
│ │ │ └── SceneViewController.swift
│ └── Other
│ │ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x-1.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x-1.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x-1.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── ItunesArtwork@2x.png
│ │ ├── Contents.json
│ │ ├── LaunchLogo.imageset
│ │ │ ├── Contents.json
│ │ │ └── LaunchLogo.png
│ │ ├── LaunchScreen.imageset
│ │ │ ├── Contents.json
│ │ │ └── Group 1.png
│ │ ├── avatar.imageset
│ │ │ ├── Contents.json
│ │ │ └── avatar.svg
│ │ ├── checkmark_icon.imageset
│ │ │ ├── Contents.json
│ │ │ └── Icon.png
│ │ ├── cross_icon.imageset
│ │ │ ├── Contents.json
│ │ │ └── Icon-1.png
│ │ ├── plus_icon.imageset
│ │ │ ├── Contents.json
│ │ │ └── Icon.png
│ │ └── profile_icon.imageset
│ │ │ ├── Contents.json
│ │ │ └── profile_icon.png
│ │ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ │ └── Info.plist
├── SmokeTests.xctestplan
├── Templates
│ └── VIPER
│ │ └── VIPER Module.xctemplate
│ │ ├── TemplateIcon.png
│ │ ├── TemplateIcon@2x.png
│ │ ├── TemplateInfo.plist
│ │ ├── ___FILEBASENAME___Interactor.swift
│ │ ├── ___FILEBASENAME___Module.swift
│ │ ├── ___FILEBASENAME___Presenter.swift
│ │ ├── ___FILEBASENAME___Router.swift
│ │ └── ___FILEBASENAME___View.swift
├── UITests
│ ├── Engine
│ │ ├── App.swift
│ │ ├── DAppEngine.swift
│ │ ├── Engine.swift
│ │ ├── RoutingEngine.swift
│ │ ├── SafariEngine.swift
│ │ └── WalletEngine.swift
│ ├── Extensions
│ │ └── XCUIElement.swift
│ └── Regression
│ │ └── RegressionTests.swift
├── Wallet.entitlements
├── WalletApp
│ ├── ApplicationLayer
│ │ ├── AppDelegate.swift
│ │ ├── Application.swift
│ │ ├── ConfigurationService.swift
│ │ ├── Configurator
│ │ │ ├── AppearanceConfigurator.swift
│ │ │ ├── ApplicationConfigurator.swift
│ │ │ ├── Configurator.swift
│ │ │ ├── MigrationConfigurator.swift
│ │ │ └── ThirdPartyConfigurator.swift
│ │ ├── LoggingService.swift
│ │ ├── PushRegisterer.swift
│ │ └── SceneDelegate.swift
│ ├── BusinessLayer
│ │ └── ListingsSertice
│ │ │ ├── Listings.swift
│ │ │ ├── ListingsAPI.swift
│ │ │ └── ListingsNetworkService.swift
│ ├── Common
│ │ ├── ActivityIndicatorManager.swift
│ │ ├── BuildConfiguration.swift
│ │ ├── Extensions
│ │ │ ├── EthereumTransaction.swift
│ │ │ ├── Foundation
│ │ │ │ └── Sequence.swift
│ │ │ ├── SwiftUI
│ │ │ │ ├── BlinkAnimation.swift
│ │ │ │ └── View.swift
│ │ │ └── UIKit
│ │ │ │ ├── String.swift
│ │ │ │ ├── UIColor.swift
│ │ │ │ └── UIViewController.swift
│ │ ├── Helpers
│ │ │ ├── CacheAsyncImage.swift
│ │ │ ├── FailableDecodable.swift
│ │ │ ├── QueryParameters.swift
│ │ │ ├── SegmentedPicker.swift
│ │ │ ├── TagsView.swift
│ │ │ └── UIPasteboardWrapper.swift
│ │ ├── Style
│ │ │ └── Color.swift
│ │ ├── VIPER
│ │ │ └── SceneViewController.swift
│ │ └── Views
│ │ │ └── ConnectedSheetView.swift
│ ├── Other
│ │ ├── Assets.xcassets
│ │ │ ├── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x-1.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x-1.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x-1.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ │ └── ItunesArtwork@2x.png
│ │ │ ├── Contents.json
│ │ │ ├── connect-template.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── connect-template.svg
│ │ │ ├── connected.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── connected.pdf
│ │ │ ├── connections_tab.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── connections_tab.svg
│ │ │ ├── copy.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── copy.svg
│ │ │ ├── copy_small.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── copy.svg
│ │ │ ├── forward-shevron.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── forward-shevron.svg
│ │ │ ├── foundation.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── foundation.svg
│ │ │ ├── header.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Visual.svg
│ │ │ ├── inbox_tab.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── inbox_tab.svg
│ │ │ ├── scan.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── scan.svg
│ │ │ ├── settings_tab.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── settings_tab.svg
│ │ │ ├── subscription_empty_icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── subscription_empty_icon.png
│ │ │ ├── subscriptions_empty_background.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── subscriptions_empty_background.png
│ │ │ ├── subscriptions_empty_icon.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── subscriptions_empty_icon.svg
│ │ │ ├── welcome-dark.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── welcome-dark.pdf
│ │ │ └── welcome-light.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── welcome-light.pdf
│ │ ├── Colors.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── blue100.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── blue200.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── cyan-background.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── foreground-negative.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── foreground-positive.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── grey100.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── grey50.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── grey70.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── grey8.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── grey95.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── light-background.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── light-blue.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── light-foreground-negative.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── light-foreground-positive.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── system-gray-light.colorset
│ │ │ │ └── Contents.json
│ │ │ └── white-background.colorset
│ │ │ │ └── Contents.json
│ │ └── Info.plist
│ ├── PresentationLayer
│ │ └── Wallet
│ │ │ ├── AuthRequest
│ │ │ ├── AuthRequestModule.swift
│ │ │ ├── AuthRequestPresenter.swift
│ │ │ ├── AuthRequestRouter.swift
│ │ │ └── AuthRequestView.swift
│ │ │ ├── Browser
│ │ │ ├── BrowserInteractor.swift
│ │ │ ├── BrowserModule.swift
│ │ │ ├── BrowserPresenter.swift
│ │ │ ├── BrowserRouter.swift
│ │ │ ├── BrowserView.swift
│ │ │ ├── SafariViewController
│ │ │ │ └── SafariViewController.swift
│ │ │ └── WebView
│ │ │ │ └── WebView.swift
│ │ │ ├── ConnectionDetails
│ │ │ ├── ConnectionDetailsModule.swift
│ │ │ ├── ConnectionDetailsPresenter.swift
│ │ │ ├── ConnectionDetailsRouter.swift
│ │ │ └── ConnectionDetailsView.swift
│ │ │ ├── Main
│ │ │ ├── MainInteractor.swift
│ │ │ ├── MainModule.swift
│ │ │ ├── MainPresenter.swift
│ │ │ ├── MainRouter.swift
│ │ │ ├── MainViewController.swift
│ │ │ └── Model
│ │ │ │ └── TabPage.swift
│ │ │ ├── Notifications
│ │ │ ├── Models
│ │ │ │ ├── ListingViewModel.swift
│ │ │ │ └── SubscriptionsViewModel.swift
│ │ │ ├── NotificationsInteractor.swift
│ │ │ ├── NotificationsModule.swift
│ │ │ ├── NotificationsPresenter.swift
│ │ │ ├── NotificationsRouter.swift
│ │ │ └── NotificationsView.swift
│ │ │ ├── NotifySettings
│ │ │ ├── NotifyPreferencesInteractor.swift
│ │ │ ├── NotifyPreferencesModule.swift
│ │ │ ├── NotifyPreferencesPresenter.swift
│ │ │ ├── NotifyPreferencesRouter.swift
│ │ │ └── NotifyPreferencesView.swift
│ │ │ ├── PasteUri
│ │ │ ├── PasteUriInteractor.swift
│ │ │ ├── PasteUriModule.swift
│ │ │ ├── PasteUriPresenter.swift
│ │ │ ├── PasteUriRouter.swift
│ │ │ └── PasteUriView.swift
│ │ │ ├── PushMessages
│ │ │ ├── Models
│ │ │ │ └── NotifyMessageViewModel.swift
│ │ │ ├── SubscriptionInteractor.swift
│ │ │ ├── SubscriptionModule.swift
│ │ │ ├── SubscriptionPresenter.swift
│ │ │ ├── SubscriptionRouter.swift
│ │ │ └── SubscriptionView.swift
│ │ │ ├── Scan
│ │ │ ├── ScanInteractor.swift
│ │ │ ├── ScanModule.swift
│ │ │ ├── ScanPresenter.swift
│ │ │ ├── ScanRouter.swift
│ │ │ ├── ScanView.swift
│ │ │ └── Views
│ │ │ │ ├── ScanQR.swift
│ │ │ │ ├── ScanQRView.swift
│ │ │ │ └── ScanTargetView.swift
│ │ │ ├── SessionProposal
│ │ │ ├── SessionProposalInteractor.swift
│ │ │ ├── SessionProposalModule.swift
│ │ │ ├── SessionProposalPresenter.swift
│ │ │ ├── SessionProposalRouter.swift
│ │ │ └── SessionProposalView.swift
│ │ │ ├── SessionRequest
│ │ │ ├── SessionRequestInteractor.swift
│ │ │ ├── SessionRequestModule.swift
│ │ │ ├── SessionRequestPresenter.swift
│ │ │ ├── SessionRequestRouter.swift
│ │ │ └── SessionRequestView.swift
│ │ │ ├── Settings
│ │ │ ├── SettingsInteractor.swift
│ │ │ ├── SettingsModule.swift
│ │ │ ├── SettingsPresenter.swift
│ │ │ ├── SettingsRouter.swift
│ │ │ └── SettingsView.swift
│ │ │ ├── Wallet
│ │ │ ├── WalletInteractor.swift
│ │ │ ├── WalletModule.swift
│ │ │ ├── WalletPresenter.swift
│ │ │ ├── WalletRouter.swift
│ │ │ └── WalletView.swift
│ │ │ └── Welcome
│ │ │ ├── Views
│ │ │ └── TextFieldView.swift
│ │ │ ├── WelcomeInteractor.swift
│ │ │ ├── WelcomeModule.swift
│ │ │ ├── WelcomePresenter.swift
│ │ │ ├── WelcomeRouter.swift
│ │ │ └── WelcomeView.swift
│ ├── WalletApp.entitlements
│ └── WalletAppRelease.entitlements
├── WalletConnect-Package.xctestplan
└── fastlane
│ └── Fastfile
├── LICENSE
├── Makefile
├── NotifyTests.xctestplan
├── PNTest.apns
├── Package.resolved
├── Package.swift
├── README.md
├── Sources
├── Chat
│ ├── Chat.swift
│ ├── ChatClient.swift
│ ├── ChatClientFactory.swift
│ ├── ChatImports.swift
│ ├── ChatStorageIdentifiers.swift
│ ├── ProtocolServices
│ │ ├── Common
│ │ │ ├── LeaveService.swift
│ │ │ ├── MessagingService.swift
│ │ │ └── ResubscriptionService.swift
│ │ ├── History
│ │ │ └── HistoryService.swift
│ │ ├── Invitee
│ │ │ └── InvitationHandlingService.swift
│ │ ├── Inviter
│ │ │ └── InviteService.swift
│ │ └── Sync
│ │ │ └── SyncRegisterService.swift
│ ├── Storage
│ │ ├── ChatStorage.swift
│ │ ├── InviteKeyDelegate.swift
│ │ ├── ReceiviedInviteStatusDelegate.swift
│ │ ├── SentInviteStoreDelegate.swift
│ │ └── ThreadStoreDelegate.swift
│ └── Types
│ │ ├── ChatError.swift
│ │ ├── ChatProtocolMethod.swift
│ │ ├── Payloads
│ │ ├── AcceptPayload.swift
│ │ ├── InvitePayload.swift
│ │ ├── MessagePayload.swift
│ │ └── ReceiptPayload.swift
│ │ └── Plain
│ │ ├── Contact.swift
│ │ ├── Invite.swift
│ │ ├── InviteKey.swift
│ │ ├── Message.swift
│ │ ├── ReceivedInvite.swift
│ │ ├── ReceivedInviteStatus.swift
│ │ ├── SentInvite.swift
│ │ └── Thread.swift
├── Commons
│ ├── AnyCodable.swift
│ ├── AnyCodableError.swift
│ └── Either.swift
├── Database
│ ├── DatabaseImports.swift
│ ├── DiskSqlite.swift
│ ├── MemorySqlite.swift
│ ├── SQLiteQuery.swift
│ ├── Sqlite.swift
│ ├── SqliteError.swift
│ ├── SqliteRow.swift
│ ├── SqliteRowDecoder.swift
│ └── SqliteRowEncoder.swift
├── Events
│ ├── EventStorage.swift
│ ├── Events.swift
│ ├── EventsClient.swift
│ ├── EventsClientFactory.swift
│ ├── EventsCollector.swift
│ ├── EventsDispatcher.swift
│ ├── EventsImports.swift
│ ├── ExecutionTraces
│ │ ├── PairingExecutionTraceEvents.swift
│ │ ├── SessionApproveExecutionTraceEvents.swift
│ │ └── SessionAuthenticateTraceEvents.swift
│ ├── MessageEvent.swift
│ ├── MessageEventProperties.swift
│ ├── MessageEventType.swift
│ ├── NetworkingService.swift
│ ├── TraceEvent.swift
│ └── UserDefaultsStateStorage.swift
├── HTTPClient
│ ├── HTTPClient.swift
│ ├── HTTPError.swift
│ ├── HTTPNetworkClient.swift
│ └── HTTPService.swift
├── JSONRPC
│ ├── JSONRPCError.swift
│ ├── JSONRPCImports.swift
│ ├── RPCID.swift
│ ├── RPCRequest.swift
│ ├── RPCResponse.swift
│ └── RPCResult.swift
├── WalletConnectIdentity
│ ├── IdentityClient.swift
│ ├── IdentityClientFactory.swift
│ ├── IdentityImports.swift
│ ├── IdentityKeyAPI.swift
│ ├── IdentityNetworkService.swift
│ ├── IdentityNetworking.swift
│ ├── IdentityRegistrationParams.swift
│ ├── IdentityService.swift
│ ├── IdentityStorage.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ └── Types
│ │ ├── IDAuthClaims.swift
│ │ ├── IDAuthPayload.swift
│ │ ├── RegisterInviteClaims.swift
│ │ ├── UnregisterIdentityClaims.swift
│ │ └── UnregisterInviteClaims.swift
├── WalletConnectJWT
│ ├── JSONEncoder+JWT.swift
│ ├── JWT.swift
│ ├── JWTDecodable.swift
│ ├── JWTEncodable.swift
│ ├── JWTEncoder.swift
│ ├── JWTError.swift
│ ├── JWTHeader.swift
│ ├── JWTImports.swift
│ ├── JWTSigning.swift
│ └── JWTValidator.swift
├── WalletConnectKMS
│ ├── Codec
│ │ └── ChaChaPolyCodec.swift
│ ├── Crypto
│ │ ├── AgreementKeys.swift
│ │ ├── CryptoKitWrapper
│ │ │ ├── AgreementCryptoKit.swift
│ │ │ ├── SharedSecret.swift
│ │ │ └── SigningKeyCryptoKit.swift
│ │ ├── Hash.swift
│ │ ├── KeyManagementService.swift
│ │ └── SymmetricKey.swift
│ ├── KMSImports.swift
│ ├── Keychain
│ │ ├── GenericPasswordConvertible.swift
│ │ ├── GroupKeychainStorage.swift
│ │ ├── KeychainError.swift
│ │ ├── KeychainService.swift
│ │ ├── KeychainStorage.swift
│ │ └── String+GenericPasswordConvertible.swift
│ └── Serialiser
│ │ ├── Envelope.swift
│ │ ├── Serializer.swift
│ │ └── Serializing.swift
├── WalletConnectModal
│ ├── Environment+ProjectId.swift
│ ├── Extensions
│ │ ├── Bundle.swift
│ │ ├── Collection.swift
│ │ ├── Image+Backport.swift
│ │ ├── View+Backport.swift
│ │ ├── View+Modifiers.swift
│ │ ├── View+RoundedCorners.swift
│ │ └── View+Size.swift
│ ├── Helpers
│ │ └── UIApplicationWrapper.swift
│ ├── Mocks
│ │ └── Listing+Mocks.swift
│ ├── Modal
│ │ ├── Modal+Previews.swift
│ │ ├── ModalContainerView.swift
│ │ ├── ModalInteractor.swift
│ │ ├── ModalSheet.swift
│ │ ├── ModalViewModel.swift
│ │ ├── RecentWalletStorage.swift
│ │ └── Screens
│ │ │ ├── GetAWalletView.swift
│ │ │ ├── QRCodeView.swift
│ │ │ ├── WalletDetail
│ │ │ ├── WalletDetail.swift
│ │ │ └── WalletDetailViewModel.swift
│ │ │ └── WalletList.swift
│ ├── Networking
│ │ └── Explorer
│ │ │ ├── GetIosDataResponse.swift
│ │ │ ├── GetWalletsResponse.swift
│ │ │ └── Web3ModalAPI.swift
│ ├── Resources
│ │ ├── Asset.swift
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── colors
│ │ │ │ ├── Contents.json
│ │ │ │ ├── accent.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background1.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background3.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── foreground1.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── foreground2.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── foreground3.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── foregroundInverse.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── negative.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── thickOverlay.colorset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── thinOverlay.colorset
│ │ │ │ │ └── Contents.json
│ │ │ ├── help
│ │ │ │ ├── Browser.imageset
│ │ │ │ │ ├── Browser.pdf
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DAO.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DAO.pdf
│ │ │ │ ├── DeFi.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DeFi.pdf
│ │ │ │ ├── ETH.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ETH.pdf
│ │ │ │ ├── Layers.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Layers.pdf
│ │ │ │ ├── Lock.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Lock.pdf
│ │ │ │ ├── Login.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Login.pdf
│ │ │ │ ├── NFT.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── NFT.pdf
│ │ │ │ ├── Network.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Network.pdf
│ │ │ │ ├── Noun.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Noun.pdf
│ │ │ │ ├── Profile.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Profile.pdf
│ │ │ │ └── System.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── System.pdf
│ │ │ ├── icons
│ │ │ │ ├── Contents.json
│ │ │ │ ├── close.imageset
│ │ │ │ │ ├── Close.pdf
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── external_link.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── External Link.pdf
│ │ │ │ ├── help.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Help.pdf
│ │ │ │ ├── large
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── copy_large.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Copy.pdf
│ │ │ │ │ └── qr_large.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── QRCode.pdf
│ │ │ │ └── wallet.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Wallet.pdf
│ │ │ ├── walletconnect_logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── LogoLockup.pdf
│ │ │ └── wc_logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── WCLOGO.pdf
│ │ ├── Color.swift
│ │ └── PrivacyInfo.xcprivacy
│ ├── Secrets
│ │ ├── Secrets.swift
│ │ └── secrets.json.sample
│ ├── Styles
│ │ └── Button.swift
│ ├── UI
│ │ ├── Common
│ │ │ ├── ActivityIndicator.swift
│ │ │ ├── AsyncImage.swift
│ │ │ ├── Toast.swift
│ │ │ └── Web3ModalPicker.swift
│ │ └── WalletImage.swift
│ ├── UIKitSupport
│ │ └── WalletConnectModalSheetController.swift
│ ├── WalletConnectModal.swift
│ ├── WalletConnectModalClient.swift
│ └── WalletConnectModalImports.swift
├── WalletConnectNetworking
│ ├── NetworkInteracting.swift
│ ├── Networking.swift
│ ├── NetworkingClient.swift
│ ├── NetworkingClientFactory.swift
│ ├── NetworkingConfig.swift
│ ├── NetworkingImports.swift
│ ├── NetworkingInteractor.swift
│ ├── ProtocolMethod.swift
│ ├── Reason.swift
│ ├── RequestSubscriptionPayload.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ ├── ResponseSubscriptionErrorPayload.swift
│ ├── ResponseSubscriptionPayload.swift
│ └── SubscriptionPayload.swift
├── WalletConnectNotify
│ ├── Client
│ │ └── Wallet
│ │ │ ├── Extensions
│ │ │ ├── Array.swift
│ │ │ └── NotificationCenter.swift
│ │ │ ├── HistoryService.swift
│ │ │ ├── NotifyAccountProvider.swift
│ │ │ ├── NotifyClient.swift
│ │ │ ├── NotifyClientFactory.swift
│ │ │ ├── NotifyConfig.swift
│ │ │ ├── NotifyConfigAPI.swift
│ │ │ ├── NotifyConfigProvider.swift
│ │ │ ├── NotifyDatabase.swift
│ │ │ ├── NotifyDecryptionService.swift
│ │ │ ├── NotifyImageUrls.swift
│ │ │ ├── NotifyMessageRecord.swift
│ │ │ ├── NotifyResubscribeService.swift
│ │ │ ├── NotifySqliteFactory.swift
│ │ │ ├── NotifyStorage.swift
│ │ │ ├── NotifySubscriptionsBuilder.swift
│ │ │ ├── NotifySubsctiptionsUpdater.swift
│ │ │ ├── NotifyWatcherAgreementKeysProvider.swift
│ │ │ ├── NotifyWebDidResolver.swift
│ │ │ ├── ProtocolEngine
│ │ │ ├── wc_notifyDelete
│ │ │ │ ├── NotifyDeleteSubscriptionRequester.swift
│ │ │ │ └── NotifyDeleteSubscriptionSubscriber.swift
│ │ │ ├── wc_notifyMessage
│ │ │ │ └── NotifyMessageSubscriber.swift
│ │ │ ├── wc_notifySubscriptionsChanged
│ │ │ │ └── NotifySubscriptionsChangedRequestSubscriber.swift
│ │ │ ├── wc_notifyUpdate
│ │ │ │ ├── NotifyUpdateRequester.swift
│ │ │ │ └── NotifyUpdateResponseSubscriber.swift
│ │ │ ├── wc_notifyWatchSubscriptions
│ │ │ │ ├── NotifyWatchSubscriptionsRequester.swift
│ │ │ │ └── NotifyWatchSubscriptionsResponseSubscriber.swift
│ │ │ └── wc_pushSubscribe
│ │ │ │ ├── NotifySubscribeRequester.swift
│ │ │ │ └── NotifySubscribeResponseSubscriber.swift
│ │ │ ├── SubscriptionWatcher.swift
│ │ │ └── SubscriptionsAutoUpdater.swift
│ ├── Notify+Config.swift
│ ├── Notify.swift
│ ├── NotifyImports.swift
│ ├── ProtocolMethods
│ │ ├── NotifyDeleteProtocolMethod.swift
│ │ ├── NotifyGetNotificationsProtocolMethod.swift
│ │ ├── NotifyMessageProtocolMethod.swift
│ │ ├── NotifySubscribeProtocolMethod.swift
│ │ ├── NotifySubscriptionsChangedRequest.swift
│ │ ├── NotifyUpdateProtocolMethod.swift
│ │ └── NotifyWatchSubscriptionsProtocolMethod.swift
│ ├── RPCRequests
│ │ ├── NotifyDeleteParams.swift
│ │ ├── NotifyProposeParams.swift
│ │ ├── NotifyProposeResponseParams.swift
│ │ └── SubscribeResponseParams.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ └── Types
│ │ ├── DataStructures
│ │ ├── NotifyError.swift
│ │ ├── NotifyMessage.swift
│ │ ├── NotifyRequest.swift
│ │ ├── NotifyServerSubscription.swift
│ │ ├── NotifySubscription.swift
│ │ ├── NotifySubscriptionResult.swift
│ │ └── WebDidDoc.swift
│ │ └── JWTPayloads
│ │ ├── NotifyMessagePayload.swift
│ │ ├── NotifyMessageReceiptPayload.swift
│ │ ├── NotifySubscriptionPayload.swift
│ │ ├── NotifySubscriptionResponsePayload.swift
│ │ ├── NotifyUpdatePayload.swift
│ │ ├── NotifyUpdateResponsePayload.swift
│ │ ├── notify_delete
│ │ ├── NotifyDeletePayload.swift
│ │ └── NotifyDeleteResponsePayload.swift
│ │ ├── notify_get_notifications
│ │ ├── NotifyGetNotificationsRequestPayload.swift
│ │ └── NotifyGetNotificationsResponsePayload.swift
│ │ ├── notify_subscriptions_changed
│ │ ├── NotifySubscriptionsChangedRequestPayload.swift
│ │ └── NotifySubscriptionsChangedResponsePayload.swift
│ │ └── notify_watch_subscriptions
│ │ ├── NotifyWatchSubscriptionsPayload.swift
│ │ └── NotifyWatchSubscriptionsResponsePayload.swift
├── WalletConnectPairing
│ ├── Pair.swift
│ ├── PairConfig.swift
│ ├── PairStorageIdentifiers.swift
│ ├── PairingClient.swift
│ ├── PairingClientFactory.swift
│ ├── PairingClientProtocol.swift
│ ├── PairingImports.swift
│ ├── PairingInteracting.swift
│ ├── PairingRegisterer.swift
│ ├── PairingRequestsSubscriber.swift
│ ├── RPCParams
│ │ ├── PairingDeleteParams.swift
│ │ └── PairingPingParams.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ ├── Services
│ │ ├── App
│ │ │ └── AppPairService.swift
│ │ ├── Common
│ │ │ ├── Delete
│ │ │ │ └── PairingDeleteRequestSubscriber.swift
│ │ │ ├── ExpirationService.swift
│ │ │ ├── PairingCleanupService.swift
│ │ │ ├── PairingResubscribeService.swift
│ │ │ ├── PairingStateProvider.swift
│ │ │ ├── PairingsProvider.swift
│ │ │ └── Ping
│ │ │ │ ├── PingRequester.swift
│ │ │ │ ├── PingResponder.swift
│ │ │ │ └── PingResponseSubscriber.swift
│ │ └── Wallet
│ │ │ └── WalletPairService.swift
│ ├── Storage
│ │ └── PairingStorage.swift
│ └── Types
│ │ ├── AppMetadata.swift
│ │ ├── PairError.swift
│ │ ├── Pairing.swift
│ │ ├── PairingProposal.swift
│ │ ├── PairingProtocolMethod.swift
│ │ ├── PairingReasonCode.swift
│ │ ├── PairingType.swift
│ │ └── WCPairing.swift
├── WalletConnectPush
│ ├── APNSEnvironment.swift
│ ├── Push.swift
│ ├── PushClient.swift
│ ├── PushClientFactory.swift
│ ├── PushClientProtocol.swift
│ ├── PushConfig.swift
│ ├── PushImports.swift
│ ├── Register
│ │ ├── PushAuthPayload.swift
│ │ ├── PushAuthenticator.swift
│ │ ├── PushRegisterService.swift
│ │ ├── PushResponse.swift
│ │ └── PushService.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ └── UnregisterService.swift
├── WalletConnectRelay
│ ├── AppStateObserving.swift
│ ├── BundleFinder.swift
│ ├── ClientAuth
│ │ ├── ClientIdAuthenticator.swift
│ │ ├── ClientIdStorage.swift
│ │ └── RelayAuthPayload.swift
│ ├── Dispatching.swift
│ ├── EnvironmentInfo.swift
│ ├── Misc
│ │ ├── NetworkConstants.swift
│ │ └── NetworkError.swift
│ ├── NetworkMonitoring.swift
│ ├── PackageConfig.json
│ ├── PackageConfig.swift
│ ├── RPC
│ │ ├── Methods
│ │ │ ├── BatchSubscribe.swift
│ │ │ ├── Publish.swift
│ │ │ ├── Subscribe.swift
│ │ │ ├── Subscription.swift
│ │ │ └── Unsubscribe.swift
│ │ ├── RPCMethod.swift
│ │ ├── RelayRPC.swift
│ │ └── WalletConnectRPCID.swift
│ ├── Relay.swift
│ ├── RelayClient.swift
│ ├── RelayClientFactory.swift
│ ├── RelayConfig.swift
│ ├── RelayError.swift
│ ├── RelayImports.swift
│ ├── RelayURLFactory.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ └── SocketConnectionHandler
│ │ ├── AutomaticSocketConnectionHandler.swift
│ │ ├── BackgroundTaskRegistering.swift
│ │ ├── ManualSocketConnectionHandler.swift
│ │ ├── SocketConnectionHandler.swift
│ │ ├── SocketConnectionType.swift
│ │ └── WebSocket.swift
├── WalletConnectRouter
│ ├── Router
│ │ ├── Router.swift
│ │ └── RouterImports.swift
│ └── RouterLegacy
│ │ ├── Router.m
│ │ └── include
│ │ ├── Router.h
│ │ └── module.modulemap
├── WalletConnectSign
│ ├── Auth
│ │ ├── Link
│ │ │ ├── ApproveSessionAuthenticateUtil.swift
│ │ │ ├── LinkAuthRequestSubscriber.swift
│ │ │ ├── LinkAuthRequester.swift
│ │ │ ├── LinkEnvelopesDispatcher.swift
│ │ │ ├── LinkSessionAuthenticateResponder.swift
│ │ │ ├── LinkSessionRequestResponseSubscriber.swift
│ │ │ └── LinkSessionRequestSubscriber.swift
│ │ ├── Services
│ │ │ ├── App
│ │ │ │ ├── AuthResponseSubscriber.swift
│ │ │ │ ├── AuthenticateTransportTypeSwitcher.swift
│ │ │ │ ├── AuthenticatedSessionRecapUrnFactory.swift
│ │ │ │ └── SessionAuthRequestService.swift
│ │ │ ├── AuthPayloadBuilder.swift
│ │ │ ├── AuthResponseTopicResubscriptionService.swift
│ │ │ ├── CacaosBuilder.swift
│ │ │ ├── ProposalNamespaceBuilder.swift
│ │ │ ├── SessionNamespaceBuilder.swift
│ │ │ ├── SignRecap.swift
│ │ │ ├── SignRecapBuilder.swift
│ │ │ └── Wallet
│ │ │ │ ├── AuthRequestSubscriber.swift
│ │ │ │ ├── PendingRequestsProvider.swift
│ │ │ │ └── SessionAuthenticateResponder.swift
│ │ ├── SessionAuthenticatedProtocolMethod.swift
│ │ ├── SignConfig.swift
│ │ └── Types
│ │ │ ├── AuthPayload.swift
│ │ │ ├── AuthRequestParams.swift
│ │ │ ├── Errors
│ │ │ └── AuthError.swift
│ │ │ ├── ProtocolRPCParams
│ │ │ ├── SessionAuthenticateRequestParams.swift
│ │ │ └── SessionAuthenticateResponseParams.swift
│ │ │ ├── Public
│ │ │ └── AuthenticationRequest.swift
│ │ │ └── RespondParams.swift
│ ├── Constants
│ │ └── Time.swift
│ ├── Engine
│ │ ├── Common
│ │ │ ├── ApproveEngine.swift
│ │ │ ├── AuthRequestSubscribersTracking.swift
│ │ │ ├── DeleteSessionService.swift
│ │ │ ├── PendingProposalsProvider.swift
│ │ │ ├── ProposalExpiryWatcher.swift
│ │ │ ├── RequestsExpiryWatcher.swift
│ │ │ ├── SessionEngine.swift
│ │ │ ├── SessionExtendRequestSubscriber.swift
│ │ │ ├── SessionExtendRequester.swift
│ │ │ └── SessionExtendResponseSubscriber.swift
│ │ ├── Dapp
│ │ │ └── NonControllerSessionStateMachine.swift
│ │ └── Wallet
│ │ │ ├── ControllerSessionStateMachine.swift
│ │ │ └── SessionResponder.swift
│ ├── LinkAndRelayDispatchers
│ │ ├── ApproveSessionAuthenticateDispatcher.swift
│ │ ├── LinkSessionRequester.swift
│ │ ├── LinkSessionResponder.swift
│ │ ├── SessionRequestDispatcher.swift
│ │ ├── SessionRequester.swift
│ │ ├── SessionResponderDispatcher.swift
│ │ └── WalletErrorResponder.swift
│ ├── Namespace.swift
│ ├── RejectionReason.swift
│ ├── Request.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ ├── Response.swift
│ ├── Services
│ │ ├── App
│ │ │ └── AppProposeService.swift
│ │ ├── DisconnectService.swift
│ │ ├── HistoryService.swift
│ │ ├── InvalidRequestsSanitiser.swift
│ │ ├── SessionPingService.swift
│ │ └── SignCleanupService.swift
│ ├── Session.swift
│ ├── Sign
│ │ ├── SessionRequestsProvider.swift
│ │ ├── Sign.swift
│ │ ├── SignClient.swift
│ │ ├── SignClientFactory.swift
│ │ ├── SignClientProtocol.swift
│ │ └── SignImports.swift
│ ├── SignDecryptionService.swift
│ ├── SignStorageIdentifiers.swift
│ ├── Storage
│ │ └── SessionStorage.swift
│ ├── Types
│ │ ├── AuthObject.swift
│ │ ├── Common
│ │ │ └── Participant.swift
│ │ ├── ProtocolMethods
│ │ │ ├── SessionDeleteProtocolMethod.swift
│ │ │ ├── SessionEventProtocolMethod.swift
│ │ │ ├── SessionExtendProtocolMethod.swift
│ │ │ ├── SessionPingProtocolMethod.swift
│ │ │ ├── SessionProposeProtocolMethod.swift
│ │ │ ├── SessionRequestProtocolMethod.swift
│ │ │ ├── SessionSettleProtocolMethod.swift
│ │ │ └── SessionUpdateProtocolMethod.swift
│ │ ├── Session
│ │ │ ├── SessionProposal.swift
│ │ │ ├── SessionType.swift
│ │ │ └── WCSession.swift
│ │ └── SignReasonCode.swift
│ └── WalletConnectError.swift
├── WalletConnectSigner
│ ├── BIP44Provider.swift
│ ├── CryptoProvider.swift
│ ├── Ethereum
│ │ ├── ContractCall
│ │ │ ├── ContractDecoder.swift
│ │ │ ├── ContractEncoder.swift
│ │ │ ├── EthCall.swift
│ │ │ └── RPCService.swift
│ │ ├── EIP1271
│ │ │ ├── EIP1271Verifier.swift
│ │ │ └── ValidSignatureMethod.swift
│ │ ├── EIP191
│ │ │ └── EIP191Verifier.swift
│ │ ├── EIP55
│ │ │ └── EIP55.swift
│ │ └── ENS
│ │ │ ├── ENSAddressMethod.swift
│ │ │ ├── ENSNameMethod.swift
│ │ │ ├── ENSRegistryContract.swift
│ │ │ ├── ENSResolver.swift
│ │ │ ├── ENSResolverContract.swift
│ │ │ ├── ENSResolverFactory.swift
│ │ │ └── ENSResolverMethod.swift
│ ├── Extensions
│ │ └── Data+EIP191.swift
│ ├── Signer
│ │ ├── EthereumSignature.swift
│ │ ├── EthereumSigner.swift
│ │ ├── MessageSigner.swift
│ │ ├── MessageSignerFactory.swift
│ │ └── SignerFactory.swift
│ ├── SignerImports.swift
│ └── Verifier
│ │ ├── MessageVerifier.swift
│ │ └── MessageVerifierFactory.swift
├── WalletConnectSync
│ ├── Services
│ │ ├── SyncDerivationService.swift
│ │ └── SyncService.swift
│ ├── Stores
│ │ ├── SyncHistoryStore.swift
│ │ ├── SyncIndexStore.swift
│ │ ├── SyncSignatureStore.swift
│ │ ├── SyncStore.swift
│ │ └── SyncStoreFactory.swift
│ ├── Sync.swift
│ ├── SyncClient.swift
│ ├── SyncClientFactory.swift
│ ├── SyncConfig.swift
│ ├── SyncImports.swift
│ ├── SyncStorageIdentifiers.swift
│ └── Types
│ │ ├── Methods
│ │ ├── SyncDeleteMethod.swift
│ │ └── SyncSetMethod.swift
│ │ ├── StoreMap.swift
│ │ ├── StoreUpdate.swift
│ │ └── SyncRecord.swift
├── WalletConnectUtils
│ ├── Account.swift
│ ├── Blockchain.swift
│ ├── Cacao
│ │ ├── Cacao.swift
│ │ ├── CacaoHeader.swift
│ │ ├── CacaoPayload.swift
│ │ ├── CacaoSignature.swift
│ │ └── IATProvider.swift
│ ├── CodableStore.swift
│ ├── DID
│ │ ├── Base58.swift
│ │ ├── DIDKey.swift
│ │ ├── DIDKeyFactory.swift
│ │ ├── DIDKeyVariant.swift
│ │ ├── DIDPKH.swift
│ │ └── DIDWeb.swift
│ ├── Encodable.swift
│ ├── Extensions
│ │ ├── CharacterSet.swift
│ │ ├── Data.swift
│ │ ├── Date.swift
│ │ ├── Dictionary.swift
│ │ ├── Sequence.swift
│ │ ├── String+CAIPs.swift
│ │ ├── String.swift
│ │ ├── Task.swift
│ │ └── UInt8.swift
│ ├── JsonRecID.swift
│ ├── KeyValueStorage.swift
│ ├── KeyedDatabase.swift
│ ├── Logger
│ │ ├── ConsoleLogger.swift
│ │ ├── ErrorHandler.swift
│ │ ├── Log.swift
│ │ └── LoggingLevel.swift
│ ├── Queue.swift
│ ├── RPCHistory
│ │ ├── RPCHistory.swift
│ │ └── RPCHistoryFactory.swift
│ ├── RelayProtocolOptions.swift
│ ├── SIWE
│ │ ├── RecapFactory.swift
│ │ ├── RecapStatementBuilder.swift
│ │ ├── RecapUrn.swift
│ │ ├── RecapUrnMergingService.swift
│ │ ├── SIWEFromCacaoPayloadFormatter.swift
│ │ └── SiweStatementBuilder.swift
│ ├── SequenceStore.swift
│ ├── SetStore.swift
│ ├── TimeInterval+Extension.swift
│ ├── TimeProvider.swift
│ ├── UnfairLock.swift
│ ├── UtilsImports.swift
│ └── WalletConnectURI.swift
├── WalletConnectVerify
│ ├── AppAttestationRegistrer.swift
│ ├── AssertionRegistrer.swift
│ ├── AttestChallengeProvider.swift
│ ├── AttestKeyGenerator.swift
│ ├── AttestationJWTVerifier.swift
│ ├── Constants.swift
│ ├── KeyAttestationService.swift
│ ├── OriginVerifier.swift
│ ├── PublicKeyFetcher.swift
│ ├── Register
│ │ ├── VerifyResponse.swift
│ │ └── VerifyService.swift
│ ├── Resources
│ │ └── PrivacyInfo.xcprivacy
│ ├── Storage
│ │ └── VerifyStorageIdentifiers.swift
│ ├── VerifyClient.swift
│ ├── VerifyClientFactory.swift
│ ├── VerifyContext.swift
│ ├── VerifyContextFactory.swift
│ ├── VerifyImports.swift
│ ├── VerifyServerPubKeyManager.swift
│ └── VerifyStorageIdentifier.swift
├── Web3Inbox
│ ├── ChatClient
│ │ ├── ChatClientProxy.swift
│ │ ├── ChatClientRequest.swift
│ │ └── ChatClientRequestSubscriber.swift
│ ├── ConfigParam.swift
│ ├── NotifyClientProxy
│ │ ├── NotifyClientProxy.swift
│ │ ├── NotifyClientRequest.swift
│ │ └── NotifyClientRequestSubscriber.swift
│ ├── Web3Inbox.swift
│ ├── Web3InboxClient.swift
│ ├── Web3InboxClientFactory.swift
│ ├── Web3InboxImports.swift
│ └── WebView
│ │ ├── ChatWebViewEvent.swift
│ │ ├── NotifyWebViewEvent.swift
│ │ ├── WebViewFactory.swift
│ │ ├── WebViewProxy.swift
│ │ └── WebViewRequestSubscriber.swift
└── Web3Wallet
│ ├── Resources
│ └── PrivacyInfo.xcprivacy
│ ├── Web3Wallet.swift
│ ├── Web3WalletClient.swift
│ ├── Web3WalletClientFactory.swift
│ ├── Web3WalletConfig.swift
│ ├── Web3WalletDecryptionService.swift
│ └── Web3WalletImports.swift
├── Tests
├── ChatTests
│ └── Mocks
│ │ └── IdentityNetwotkServiceMock.swift
├── CommonsTests
│ ├── AnyCodableTests.swift
│ └── EitherTests.swift
├── EventsTests
│ ├── EventsCollectorTests.swift
│ └── EventsDispatcherTests.swift
├── IntegrationTests
│ ├── AuthChallengeTests.swift
│ └── XCTestManifests.swift
├── JSONRPCTests
│ ├── Data
│ │ ├── RequestJSON.swift
│ │ └── ResponseJSON.swift
│ ├── Helpers.swift
│ ├── RPCRequestTests.swift
│ └── RPCResponseTests.swift
├── LinuxMain.swift
├── NotifyTests
│ ├── Mocks
│ │ ├── MockNotifyStoring.swift
│ │ └── MockNotifyUpdateRequester.swift
│ ├── Stubs
│ │ └── NotifySubscription.swift
│ ├── SubscriptionWatcherTests.swift
│ └── SubscriptionsAutoUpdaterTests.swift
├── RelayerTests
│ ├── AuthTests
│ │ ├── Base58Tests.swift
│ │ ├── ClientIdStorageTests.swift
│ │ ├── DIDKeyFactory.swift
│ │ ├── EdDSASignerTests.swift
│ │ ├── JWTTests.swift
│ │ └── SocketAuthenticatorTests.swift
│ ├── AutomaticSocketConnectionHandlerTests.swift
│ ├── DispatcherTests.swift
│ ├── Helpers
│ │ ├── Error+Extension.swift
│ │ └── URL+Extension.swift
│ ├── ManualSocketConnectionHandlerTests.swift
│ ├── Mocks
│ │ ├── AppStateObserverMock.swift
│ │ ├── BackgroundTaskRegistrarMock.swift
│ │ ├── ClientIdStorageMock.swift
│ │ ├── DispatcherMock.swift
│ │ ├── EdDSASignerMock.swift
│ │ └── NetworkMonitoringMock.swift
│ └── RelayClientTests.swift
├── TestingUtils
│ ├── HelperTypes.swift
│ ├── Helpers.swift
│ ├── Mocks
│ │ ├── HTTPClientMock.swift
│ │ ├── KeyManagementServiceMock.swift
│ │ ├── KeychainServiceFake.swift
│ │ ├── KeychainStorageMock.swift
│ │ ├── PairingRegistererMock.swift
│ │ ├── RPC.swift
│ │ └── WCPairingStorageMock.swift
│ ├── NetworkingInteractorMock.swift
│ ├── Stubs
│ │ └── WalletConnectURI+Stub.swift
│ ├── TopicGenerator.swift
│ └── XCTest.swift
├── VerifyTests
│ ├── AppAttestationRegistrerTests.swift
│ ├── AttestationJWTVerifier.swift
│ ├── Mocks
│ │ ├── AttestChallengeProvidingMock.swift
│ │ ├── AttestKeyGeneratingMock.swift
│ │ └── KeyAttestingMock.swift
│ ├── VerifyContextFactoryTests.swift
│ └── VerifyServerPubKeyManagerTests.swift
├── WalletConnectKMSTests
│ ├── AgreementSecret+Stub.swift
│ ├── ChaChaPolyCodec_Test.swift
│ ├── CryptoTestData.swift
│ ├── EnvelopeTests.swift
│ ├── KeyManagementServiceTests.swift
│ ├── KeychainStorageTests.swift
│ └── SerialiserTests.swift
├── WalletConnectModalTests
│ ├── ExplorerAPITests.swift
│ ├── Helpers
│ │ └── FuncTests.swift
│ ├── Mocks
│ │ └── ModalSheetInteractorMock.swift
│ └── ModalViewModelTests.swift
├── WalletConnectPairingTests
│ ├── AppMetadataTests.swift
│ ├── AppPairServiceTests.swift
│ ├── ExpirationServiceTests.swift
│ └── WalletPairServiceTests.swift
├── WalletConnectSignTests
│ ├── AccountTests.swift
│ ├── AppProposalServiceTests.swift
│ ├── ApproveEngineTests.swift
│ ├── AuthPayloadBuilderTests.swift
│ ├── AuthenticatedSessionRecapFactoryTests.swift
│ ├── AutoNamespacesValidationTests.swift
│ ├── BlockchainTests.swift
│ ├── ControllerSessionStateMachineTests.swift
│ ├── Helpers
│ │ ├── Error+Extension.swift
│ │ └── TimeTraveler.swift
│ ├── InvalidRequestsSanitiserTests.swift
│ ├── Mocks
│ │ └── WCSessionStorageMock.swift
│ ├── NamespaceValidationTests.swift
│ ├── NonControllerSessionStateMachineTests.swift
│ ├── SIWEFromCacaoPayloadFormatterTests.swift
│ ├── SequenceStoreTests.swift
│ ├── SessionEngineTests.swift
│ ├── SessionNamespaceBuilderTests.swift
│ ├── SessionProposalTests.swift
│ ├── SessionRequestTests.swift
│ ├── SessionStorageTests.swift
│ ├── SignRecapBuilderTests.swift
│ ├── SignRecapTests.swift
│ ├── Stub
│ │ ├── AgreementSecret+Stub.swift
│ │ ├── AuthPayload.swift
│ │ ├── Session+Stub.swift
│ │ └── Stubs.swift
│ ├── WCResponseTests.swift
│ ├── WCSessionTests.swift
│ └── XCTestManifests.swift
└── WalletConnectUtilsTests
│ ├── KeyedDatabaseTests.swift
│ ├── RPCHistoryTests.swift
│ ├── RecapFactoryTests.swift
│ ├── RecapStatementBuilderTests.swift
│ ├── RecapUrnMergingServiceTests.swift
│ ├── RecapUrnTests.swift
│ ├── String+ExtensionTests.swift
│ └── WalletConnectURITests.swift
├── WalletConnectSwiftV2.podspec
├── XPlatformProtocolTests.xctestplan
├── coverage.sh
├── docs
└── guides
│ └── downloading_artifacts.md
├── fastlane
├── Appfile
├── Fastfile
└── Matchfile
├── generate_docs.sh
└── run_tests.sh
/.env.DApp:
--------------------------------------------------------------------------------
1 | SCHEME = "DApp"
2 | APP_IDENTIFIER = "com.walletconnect.dapp"
3 | MATCH_IDENTIFIERS = "com.walletconnect.dapp"
4 | APPLE_ID = "1606875879"
--------------------------------------------------------------------------------
/.env.Showcase:
--------------------------------------------------------------------------------
1 | SCHEME = "Showcase"
2 | APP_IDENTIFIER = "com.walletconnect.chat"
3 | MATCH_IDENTIFIERS = "com.walletconnect.chat"
4 | APPLE_ID = "1634760092"
--------------------------------------------------------------------------------
/.env.WalletApp:
--------------------------------------------------------------------------------
1 | SCHEME = "WalletApp"
2 | APP_IDENTIFIER = "com.walletconnect.walletapp"
3 | MATCH_IDENTIFIERS = "com.walletconnect.walletapp,com.walletconnect.walletapp.PNDecryptionService"
4 | APPLE_ID = "1667351690"
--------------------------------------------------------------------------------
/.envrc:
--------------------------------------------------------------------------------
1 | source .env
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Ask a question
4 | url: https://github.com/WalletConnect/walletconnect-monorepo/discussions/new?category=swift-ios
5 | about: Ask questions and discuss with other community members.
6 | - name: View our FAQ
7 | url: https://walletconnect.com/faq
8 | about: See our frequently asked questions
9 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | # Description
2 |
3 |
8 |
9 | Resolves # (issue)
10 |
11 | ## How Has This Been Tested?
12 |
13 |
18 |
19 |
20 |
21 | ## Due Dilligence
22 |
23 | * [ ] Breaking change
24 | * [ ] Requires a documentation update
25 |
--------------------------------------------------------------------------------
/.github/scripts/set-user-agent.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | printf '\nset user agent\n\n'
6 |
7 | FILE=Sources/WalletConnectRelay/PackageConfig.json
8 |
9 | if [ -f "$FILE" ];
10 | then
11 | printf '\ncurrent user agent:\n'
12 | cat "$FILE"
13 | printf '\nsetting user agent... \n'
14 | echo "{\"version\": \"$PACKAGE_VERSION\"}" > "$FILE"
15 | printf '\nuser agent set for:\n'
16 | cat "$FILE"
17 |
18 | else
19 |
20 | printf '\nError setting PACKAGE_VERSION\n\n'
21 |
22 | fi
23 |
24 |
--------------------------------------------------------------------------------
/.github/workflows/cocoapods.yml:
--------------------------------------------------------------------------------
1 | name: cocoapods
2 |
3 | on:
4 | release:
5 | types: [ published ]
6 | jobs:
7 | set-user-agent:
8 | runs-on: macos-latest-xlarge
9 | steps:
10 | - uses: actions/checkout@v2
11 | with:
12 | token: ${{ secrets.GH_TOKEN }}
13 |
14 | - name: Publish to CocoaPod register
15 | env:
16 | COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
17 | run: |
18 | pod trunk push WalletConnectSwiftV2.podspec --verbose --allow-warnings
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .build/
3 |
4 | ## User settings
5 | xcuserdata/
6 |
7 | **/xcshareddata/WorkspaceSettings.xcsettings
8 |
9 |
10 | # Swift Package Manager
11 | Packages/
12 | Package.pins
13 | /*.xcodeproj
14 |
15 | # Fastlane
16 | fastlane/report.xml
17 | fastlane/Preview.html
18 | fastlane/screenshots/**/*.png
19 | fastlane/test_output
20 | fastlane/README.md
21 | .env
22 |
23 | # Configuration
24 | Configuration.xcconfig
25 |
26 | # Cache
27 | SourcePackagesCache
28 | DerivedDataCache
29 |
30 | # Artifacts
31 | *.ipa
32 | *.zip
33 | test_results/
34 |
35 | Sources/WalletConnectModal/Secrets/secrets.json
36 |
--------------------------------------------------------------------------------
/.swiftlint.yml:
--------------------------------------------------------------------------------
1 | disabled_rules:
2 | - line_length
3 | - force_try
4 | - force_cast
5 | - todo
6 | - identifier_name
7 | - nesting
8 | - for_where
9 | - large_tuple
10 | - xctfail_message
11 | - redundant_string_enum_value
12 | - orphaned_doc_comment
13 | - file_length
14 | - type_name
15 | - type_body_length
16 | - multiple_closures_with_trailing_closure
17 | - unused_optional_binding
18 |
19 | # Rules descriptions: https://realm.github.io/SwiftLint/rule-directory.html
20 |
21 |
--------------------------------------------------------------------------------
/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/DApp/ApplicationLayer/Application.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | import WalletConnectUtils
4 |
5 | final class Application {
6 | var uri: WalletConnectURI?
7 | }
8 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/ItunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-1.appiconset/ItunesArtwork@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/ItunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon-2.appiconset/ItunesArtwork@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/auth.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "auth.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "template-rendering-intent" : "template"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/copy.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "copy.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/eip155:1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "ethereum (1).png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/eip155:1.imageset/ethereum (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/eip155:1.imageset/ethereum (1).png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/eip155:137.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "coin.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/eip155:137.imageset/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/eip155:137.imageset/coin.png
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/ethereum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "eth.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/exit.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "exit.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/pen.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "pen.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | },
12 | "properties" : {
13 | "template-rendering-intent" : "template"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/polygon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "matic.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/profile.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "profile.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/solana.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "sol.pdf",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "solana (1).png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/solana (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WalletConnect/WalletConnectSwiftV2/24397017dde42c130a20aa7a073ff198345b9df9/Example/DApp/Assets.xcassets/solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.imageset/solana (1).png
--------------------------------------------------------------------------------
/Example/DApp/Constants.swift:
--------------------------------------------------------------------------------
1 |
2 | import Foundation
3 |
4 | enum Constants {
5 | static let groupIdentifier = "group.com.walletconnect.dapp"
6 | }
7 |
--------------------------------------------------------------------------------
/Example/DApp/DApp.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.associated-domains
6 |
7 | applinks:lab.web3modal.com
8 |
9 | com.apple.security.application-groups
10 |
11 | group.com.walletconnect.dapp
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Example/DApp/DAppRelease.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.associated-domains
6 |
7 | applinks:lab.web3modal.com
8 |
9 | com.apple.security.application-groups
10 |
11 | group.com.walletconnect.dapp
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Configuration/ConfigModule.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | final class ConfigModule {
4 | @discardableResult
5 | static func create(app: Application) -> UIViewController {
6 | let router = ConfigRouter(app: app)
7 | let presenter = ConfigPresenter(router: router)
8 | let view = ConfigView().environmentObject(presenter)
9 |
10 | let viewController = SceneViewController(viewModel: presenter, content: view)
11 | router.viewController = viewController
12 |
13 | return viewController
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Configuration/ConfigRouter.swift:
--------------------------------------------------------------------------------
1 |
2 | import Foundation
3 | import UIKit
4 | import WalletConnectSign
5 |
6 | final class ConfigRouter {
7 | weak var viewController: UIViewController!
8 |
9 | private let app: Application
10 |
11 | init(app: Application) {
12 | self.app = app
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Sign/NewPairing/NewPairingInteractor.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | final class NewPairingInteractor {}
4 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Sign/NewPairing/NewPairingRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | final class NewPairingRouter {
4 | weak var viewController: UIViewController!
5 |
6 | private let app: Application
7 |
8 | init(app: Application) {
9 | self.app = app
10 | }
11 |
12 | func dismiss() {
13 | viewController.dismiss(animated: true)
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Sign/SessionAccount/SessionAccountInteractor.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | import WalletConnectSign
4 |
5 |
6 | struct AccountDetails {
7 | let chain: String
8 | let methods: [String]
9 | let account: String
10 | }
11 |
12 |
13 | final class SessionAccountInteractor {}
14 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Sign/SessionAccount/SessionAccountRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | import WalletConnectSign
4 |
5 | final class SessionAccountRouter {
6 | weak var viewController: UIViewController!
7 |
8 | private let app: Application
9 |
10 | init(app: Application) {
11 | self.app = app
12 | }
13 |
14 | func dismiss() {
15 | viewController.dismiss(animated: true)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Example/DApp/Modules/Sign/SignModule.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | final class SignModule {
4 | @discardableResult
5 | static func create(app: Application) -> UIViewController {
6 | let router = SignRouter(app: app)
7 | let interactor = SignInteractor()
8 | let presenter = SignPresenter(interactor: interactor, router: router)
9 | let view = SignView().environmentObject(presenter)
10 |
11 | let viewController = SceneViewController(viewModel: presenter, content: view)
12 | router.viewController = viewController
13 |
14 | return viewController
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Example/EchoUITests/Engine/App.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import XCTest
3 |
4 | enum App {
5 | case dapp
6 | case wallet
7 | case springboard
8 |
9 | var instance: XCUIApplication {
10 | return XCUIApplication(bundleIdentifier: bundleID)
11 | }
12 |
13 | private var bundleID: String {
14 | switch self {
15 | case .dapp:
16 | return "com.walletconnect.dapp"
17 | case .wallet:
18 | return "com.walletconnect.walletapp"
19 | case .springboard:
20 | return "com.apple.springboard"
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Example/EchoUITests/Engine/Engine.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import XCTest
3 |
4 | struct Engine {
5 | let routing = RoutingEngine()
6 | let dapp = DAppEngine()
7 | let wallet = WalletEngine()
8 | }
9 |
--------------------------------------------------------------------------------
/Example/EchoUITests/Extensions/XCUIElementQuery.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import XCTest
3 |
4 | extension XCUIElementQuery {
5 |
6 | func containing(_ text: String) -> XCUIElementQuery {
7 | let predicate = NSPredicate(format: "label CONTAINS[c] %@", text)
8 | let elementQuery = self.containing(predicate)
9 | return elementQuery
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Example/ExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/ExampleApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Example/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 |
--------------------------------------------------------------------------------
/Example/IntegrationTests/Sign/Helpers/XCTest.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import XCTest
3 |
4 | extension XCTest {
5 | public func XCTAssertThrowsErrorAsync(
6 | _ expression: @autoclosure () async throws -> T,
7 | _ message: @autoclosure () -> String = "",
8 | file: StaticString = #filePath,
9 | line: UInt = #line,
10 | _ errorHandler: (_ error: Error) -> Void = { _ in }
11 | ) async {
12 | do {
13 | _ = try await expression()
14 | XCTFail(message(), file: file, line: line)
15 | } catch {
16 | errorHandler(error)
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Example/IntegrationTests/Stubs/Account.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import WalletConnectUtils
3 |
4 | extension Account {
5 | static func stub() -> Account {
6 | return Account(chainIdentifier: "eip155:1", address: "0x15bca56b6e2728aec2532df9d436bd1600e86688")!
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/Example/IntegrationTests/Stubs/PushMessage.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import WalletConnectNotify
3 |
4 | extension NotifyMessage {
5 | static func stub(type: String) -> NotifyMessage {
6 | return NotifyMessage(
7 | id: UUID().uuidString,
8 | title: "swift_test",
9 | body: "body",
10 | icon: "https://images.unsplash.com/photo-1581224463294-908316338239?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=250&q=80",
11 | url: "https://web3inbox.com",
12 | type: type,
13 | sentAt: Date())
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Example/PNDecryptionService/PNDecryptionService.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.application-groups
6 |
7 | group.com.walletconnect.sdk
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/PNDecryptionService/PNDecryptionServiceRelease.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.application-groups
6 |
7 | group.com.walletconnect.sdk
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/Shared/DefaultSocketFactory.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import Starscream
3 | import WalletConnectRelay
4 |
5 | extension WebSocket: WebSocketConnecting { }
6 |
7 | struct DefaultSocketFactory: WebSocketFactory {
8 | func create(with url: URL) -> WebSocketConnecting {
9 | let socket = WebSocket(url: url)
10 | let queue = DispatchQueue(label: "com.walletconnect.sdk.sockets", qos: .utility, attributes: .concurrent)
11 | socket.callbackQueue = queue
12 | return socket
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/ApplicationLayer/Application.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import WalletConnectChat
3 |
4 | final class Application {
5 |
6 | lazy var chatService: ChatService = {
7 | return ChatService()
8 | }()
9 |
10 | lazy var accountStorage: AccountStorage = {
11 | return AccountStorage(defaults: .standard)
12 | }()
13 | }
14 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/ApplicationLayer/Configurator/ApplicationConfigurator.swift:
--------------------------------------------------------------------------------
1 | import Combine
2 |
3 | struct ApplicationConfigurator: Configurator {
4 |
5 | private var publishers = Set()
6 |
7 | private let app: Application
8 |
9 | init(app: Application) {
10 | self.app = app
11 | }
12 |
13 | func configure() {
14 | WelcomeModule.create(app: app).present()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/ApplicationLayer/Configurator/Configurator.swift:
--------------------------------------------------------------------------------
1 | protocol Configurator {
2 | func configure()
3 | }
4 |
5 | extension Array where Element == Configurator {
6 | func configure() {
7 | forEach { $0.configure() }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/ApplicationLayer/Configurator/MigrationConfigurator.swift:
--------------------------------------------------------------------------------
1 | struct MigrationConfigurator: Configurator {
2 |
3 | let app: Application
4 |
5 | init(app: Application) {
6 | self.app = app
7 | }
8 |
9 | func configure() {
10 |
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/Chat/ChatRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | final class ChatRouter {
4 |
5 | weak var viewController: UIViewController!
6 |
7 | private let app: Application
8 |
9 | init(app: Application) {
10 | self.app = app
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/ChatList/Models/AlertError.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | struct AlertError: Error, LocalizedError {
4 | let message: String
5 |
6 | var errorDescription: String? {
7 | return message
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/ChatList/Models/ThreadViewModel.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | import WalletConnectChat
3 |
4 | struct ThreadViewModel: Identifiable {
5 | let thread: WalletConnectChat.Thread
6 |
7 | var topic: String {
8 | return thread.topic
9 | }
10 |
11 | var id: String {
12 | return thread.topic
13 | }
14 |
15 | var title: String {
16 | return thread.peerAccount.address
17 | }
18 |
19 | var subtitle: String {
20 | return thread.topic
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/Import/ImportRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import WalletConnectModal
3 | import WalletConnectPairing
4 |
5 | final class ImportRouter {
6 |
7 | weak var viewController: UIViewController!
8 |
9 | private let app: Application
10 |
11 | init(app: Application) {
12 | self.app = app
13 | }
14 |
15 | func presentWalletConnectModal() {
16 | WalletConnectModal.present(from: viewController)
17 | }
18 |
19 | func presentChat(importAccount: ImportAccount) {
20 | MainModule.create(app: app, importAccount: importAccount).present()
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/Invite/InviteRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | final class InviteRouter {
4 |
5 | weak var viewController: UIViewController!
6 |
7 | private let app: Application
8 |
9 | init(app: Application) {
10 | self.app = app
11 | }
12 |
13 | func dismiss() {
14 | viewController.dismiss()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/InviteList/InviteListRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | final class InviteListRouter {
4 |
5 | weak var viewController: UIViewController!
6 |
7 | private let app: Application
8 |
9 | init(app: Application) {
10 | self.app = app
11 | }
12 |
13 | func dismiss() {
14 | viewController.pop()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/InviteList/Models/InviteType.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | enum InviteType {
4 | case received
5 | case sent
6 |
7 | var title: String {
8 | switch self {
9 | case .received:
10 | return "Chat Requests"
11 | case .sent:
12 | return "Sent Invites"
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Chat/Main/MainModule.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | final class MainModule {
4 |
5 | @discardableResult
6 | static func create(app: Application, importAccount: ImportAccount) -> UIViewController {
7 | let router = MainRouter(app: app)
8 | let presenter = MainPresenter(router: router, importAccount: importAccount)
9 | let viewController = MainViewController(presenter: presenter)
10 |
11 | router.viewController = viewController
12 |
13 | return viewController
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Web3Inbox/Web3InboxModule.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | final class Web3InboxModule {
4 |
5 | @discardableResult
6 | static func create(app: Application, importAccount: ImportAccount) -> UIViewController {
7 | let router = Web3InboxRouter(app: app)
8 | let viewController = Web3InboxViewController(importAccount: importAccount)
9 | router.viewController = viewController
10 | return viewController
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Example/Showcase/Classes/PresentationLayer/Web3Inbox/Web3InboxRouter.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | final class Web3InboxRouter {
4 |
5 | weak var viewController: UIViewController!
6 |
7 | private let app: Application
8 |
9 | init(app: Application) {
10 | self.app = app
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Example/Showcase/Common/Components/PlainButton.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 | import AsyncButton
3 |
4 | struct PlainButton