├── .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