├── .gitattributes ├── .gitignore ├── Demo ├── Demo.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ └── Demo.xcscheme ├── Demo │ ├── APIReferenceViewController.swift │ ├── AccountChecker.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 167.png │ │ │ ├── 180.png │ │ │ ├── 20.png │ │ │ ├── 29.png │ │ │ ├── 40.png │ │ │ ├── 50.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── apple.imageset │ │ │ ├── Contents.json │ │ │ └── apple.png │ │ ├── close.imageset │ │ │ ├── Contents.json │ │ │ └── close.png │ │ ├── demo_metamask.imageset │ │ │ ├── Contents.json │ │ │ └── metamask.png │ │ ├── discord.imageset │ │ │ ├── Contents.json │ │ │ └── discord.png │ │ ├── email.imageset │ │ │ ├── Contents.json │ │ │ └── email.png │ │ ├── facebook.imageset │ │ │ ├── Contents.json │ │ │ └── facebook.png │ │ ├── google.imageset │ │ │ ├── Contents.json │ │ │ └── google.png │ │ ├── launch.imageset │ │ │ ├── Contents.json │ │ │ └── image.png │ │ ├── main_bg.imageset │ │ │ ├── Contents.json │ │ │ └── main_bg.png │ │ ├── main_image_0.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_0.png │ │ ├── main_image_1.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_1.png │ │ ├── main_image_2.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_2.png │ │ ├── main_image_3.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_3.png │ │ ├── main_logo.imageset │ │ │ ├── Contents.json │ │ │ └── main_logo.png │ │ ├── more_wallet.imageset │ │ │ ├── Contents.json │ │ │ └── more.png │ │ └── particle_icon.imageset │ │ │ ├── Contents.json │ │ │ └── particle_icon.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Extensions │ │ └── Extensions.swift │ ├── Info.plist │ ├── Models │ │ └── MainDataModel.swift │ ├── ParticleNetwork-Info.plist │ ├── Third │ │ └── CarouselCollectionView.swift │ ├── ViewControllers │ │ └── MainViewController.swift │ ├── Views │ │ └── MainCollectionCell.swift │ ├── customUIConfig.json │ ├── en.lproj │ │ └── Localizable.strings │ ├── ja.lproj │ │ └── Localizable.strings │ ├── ko.lproj │ │ └── Localizable.strings │ ├── zh-Hans.lproj │ │ └── Localizable.strings │ └── zh-Hant.lproj │ │ └── Localizable.strings ├── Podfile └── Podfile.lock ├── DemoObjc_deprecated ├── DemoObjc.xcodeproj │ └── project.pbxproj ├── DemoObjc │ ├── APIReferenceViewController.h │ ├── APIReferenceViewController.m │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 167.png │ │ │ ├── 180.png │ │ │ ├── 20.png │ │ │ ├── 29.png │ │ │ ├── 40.png │ │ │ ├── 50.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── apple.imageset │ │ │ ├── Contents.json │ │ │ └── apple.png │ │ ├── background.imageset │ │ │ ├── Contents.json │ │ │ └── background.png │ │ ├── core.imageset │ │ │ ├── Contents.json │ │ │ └── core.png │ │ ├── email.imageset │ │ │ ├── Contents.json │ │ │ └── email.png │ │ ├── facebook.imageset │ │ │ ├── Contents.json │ │ │ └── facebook.png │ │ ├── google.imageset │ │ │ ├── Contents.json │ │ │ └── google.png │ │ ├── icon.imageset │ │ │ ├── Contents.json │ │ │ └── icon.png │ │ ├── particle_network.imageset │ │ │ ├── Contents.json │ │ │ └── logo.png │ │ ├── phone.imageset │ │ │ ├── Contents.json │ │ │ └── phone.png │ │ └── welcome.imageset │ │ │ ├── Contents.json │ │ │ └── welcome.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DemoObjc-Bridging-Header.h │ ├── Info.plist │ ├── MainViewController.h │ ├── MainViewController.m │ ├── NSData+Extensions.h │ ├── NSData+Extensions.m │ ├── ParticleConnectWrapper.swift │ ├── ParticleNetwork-Info.plist │ ├── SwitchChainViewController.swift │ └── main.m ├── Podfile └── Podfile.lock ├── Demo_ParticleAuth_deprecated ├── Demo.xcodeproj │ └── project.pbxproj ├── Demo │ ├── APIReferenceViewController.swift │ ├── AccountChecker.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 167.png │ │ │ ├── 180.png │ │ │ ├── 20.png │ │ │ ├── 29.png │ │ │ ├── 40.png │ │ │ ├── 50.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── apple.imageset │ │ │ ├── Contents.json │ │ │ └── apple.png │ │ ├── close.imageset │ │ │ ├── Contents.json │ │ │ └── close.png │ │ ├── demo_metamask.imageset │ │ │ ├── Contents.json │ │ │ └── metamask.png │ │ ├── discord.imageset │ │ │ ├── Contents.json │ │ │ └── discord.png │ │ ├── email.imageset │ │ │ ├── Contents.json │ │ │ └── email.png │ │ ├── facebook.imageset │ │ │ ├── Contents.json │ │ │ └── facebook.png │ │ ├── google.imageset │ │ │ ├── Contents.json │ │ │ └── google.png │ │ ├── launch.imageset │ │ │ ├── Contents.json │ │ │ └── image.png │ │ ├── main_bg.imageset │ │ │ ├── Contents.json │ │ │ └── main_bg.png │ │ ├── main_image_0.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_0.png │ │ ├── main_image_1.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_1.png │ │ ├── main_image_2.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_2.png │ │ ├── main_image_3.imageset │ │ │ ├── Contents.json │ │ │ └── main_image_3.png │ │ ├── main_logo.imageset │ │ │ ├── Contents.json │ │ │ └── main_logo.png │ │ └── more_wallet.imageset │ │ │ ├── Contents.json │ │ │ └── more.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Extensions │ │ └── Extensions.swift │ ├── Info.plist │ ├── Models │ │ └── MainDataModel.swift │ ├── ParticleNetwork-Info.plist │ ├── Third │ │ └── CarouselCollectionView.swift │ ├── ViewControllers │ │ └── MainViewController.swift │ ├── Views │ │ └── MainCollectionCell.swift │ ├── customUIConfig.json │ ├── en.lproj │ │ └── Localizable.strings │ ├── ja.lproj │ │ └── Localizable.strings │ ├── ko.lproj │ │ └── Localizable.strings │ ├── zh-Hans.lproj │ │ └── Localizable.strings │ └── zh-Hant.lproj │ │ └── Localizable.strings ├── Podfile └── Podfile.lock ├── GuideSeries ├── ParticleConnectExample+AA │ ├── ParticleConnectExample.xcodeproj │ │ └── project.pbxproj │ ├── ParticleConnectExample │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ParticleNetwork-Info.plist │ │ └── ViewController.swift │ ├── Podfile │ └── Podfile.lock ├── ParticleConnectExample+WalletUI │ ├── ParticleConnectExample.xcodeproj │ │ └── project.pbxproj │ ├── ParticleConnectExample │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ParticleNetwork-Info.plist │ │ └── ViewController.swift │ ├── Podfile │ └── Podfile.lock └── ParticleConnectExample │ ├── ParticleConnectExample.xcodeproj │ └── project.pbxproj │ ├── ParticleConnectExample │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ParticleNetwork-Info.plist │ └── ViewController.swift │ ├── Podfile │ └── Podfile.lock ├── LICENSE.txt ├── ParticleAuthDemo_Scene_deprecated ├── ParticleAuthDemo_Scene.xcodeproj │ └── project.pbxproj ├── ParticleAuthDemo_Scene │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ParticleNetwork-Info.plist │ ├── SceneDelegate.swift │ └── ViewController.swift ├── Podfile └── Podfile.lock ├── ParticleAuthDemo_deprecated ├── ParticleAuthDemo.xcodeproj │ └── project.pbxproj ├── ParticleAuthDemo │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ParticleNetwork-Info.plist │ └── ViewController.swift ├── Podfile └── Podfile.lock ├── ParticleWalletConnectDemo ├── ParticleWalletConnectDemo.xcodeproj │ └── project.pbxproj ├── ParticleWalletConnectDemo │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ParticleNetwork-Info.plist │ ├── QRCodeTool.swift │ ├── ScanViewController.swift │ └── ViewController.swift ├── Podfile └── Podfile.lock ├── README.md └── images └── connectkit-mobile.svg /.gitattributes: -------------------------------------------------------------------------------- 1 | *.m linguist-language=Swift 2 | *.h linguist-language=Swift 3 | *.json linguist-detectable=false 4 | *.swift linguist-detectable=true 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## User settings 6 | xcuserdata/ 7 | *.xcodeproj/xcuserdata/ 8 | 9 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 10 | *.xcscmblueprint 11 | *.xccheckout 12 | 13 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 14 | build/ 15 | DerivedData/ 16 | *.moved-aside 17 | *.pbxuser 18 | !default.pbxuser 19 | *.mode1v3 20 | !default.mode1v3 21 | *.mode2v3 22 | !default.mode2v3 23 | *.perspectivev3 24 | !default.perspectivev3 25 | 26 | ## Obj-C/Swift specific 27 | *.hmap 28 | 29 | ## App packaging 30 | *.ipa 31 | *.dSYM.zip 32 | *.dSYM 33 | 34 | ## Playgrounds 35 | timeline.xctimeline 36 | playground.xcworkspace 37 | 38 | # Swift Package Manager 39 | # 40 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 41 | # Packages/ 42 | # Package.pins 43 | # Package.resolved 44 | # *.xcodeproj 45 | # 46 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 47 | # hence it is not needed unless you have added a package configuration file to your project 48 | # .swiftpm 49 | 50 | .build/ 51 | 52 | # CocoaPods 53 | # 54 | # We recommend against adding the Pods directory to your .gitignore. However 55 | # you should judge for yourself, the pros and cons are mentioned at: 56 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 57 | # 58 | Pods/ 59 | # 60 | # Add this line if you want to avoid checking in source code from the Xcode workspace 61 | *.xcworkspace 62 | 63 | # Carthage 64 | # 65 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 66 | Carthage/Checkouts 67 | Carthage/Build/ 68 | 69 | # Accio dependency management 70 | Dependencies/ 71 | .accio/ 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. 76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 79 | 80 | fastlane/report.xml 81 | fastlane/Preview.html 82 | fastlane/screenshots/**/*.png 83 | fastlane/test_output 84 | 85 | # Code Injection 86 | # 87 | # After new code Injection tools there's a generated folder /iOSInjectionProject 88 | # https://github.com/johnno1962/injectionforxcode 89 | 90 | iOSInjectionProject/ 91 | 92 | # R.swift 93 | R.generated.swift 94 | 95 | tmp 96 | 97 | #amplify-do-not-edit-begin 98 | amplify/\#current-cloud-backend 99 | amplify/.config/local-* 100 | amplify/logs 101 | amplify/mock-data 102 | amplify/backend/amplify-meta.json 103 | amplify/backend/.temp 104 | build/ 105 | dist/ 106 | node_modules/ 107 | aws-exports.js 108 | 109 | 110 | amplifyconfiguration.dart 111 | amplify-build-config.json 112 | amplify-gradle-config.json 113 | amplifytools.xcconfig 114 | .secret-* 115 | **.sample 116 | #amplify-do-not-edit-end 117 | Demo/Gemfile 118 | Demo/fastlane/Appfile 119 | Demo/fastlane/Fastfile 120 | Demo/fastlane/Matchfile 121 | Demo/fastlane/README.md 122 | Demo/fastlane/report.xml 123 | DemoObjc/Gemfile 124 | DemoObjc/fastlane/Appfile 125 | DemoObjc/fastlane/Fastfile 126 | DemoObjc/fastlane/Matchfile 127 | DemoObjc/fastlane/README.md 128 | DemoObjc/fastlane/report.xml 129 | -------------------------------------------------------------------------------- /Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 42 | 44 | 50 | 51 | 52 | 53 | 59 | 61 | 67 | 68 | 69 | 70 | 72 | 73 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /Demo/Demo/AccountChecker.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccountChecker.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/7/25. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import ConnectCommon 10 | import Foundation 11 | import ParticleConnect 12 | import ParticleNetworkBase 13 | 14 | class AccountChecker { 15 | public static func hasAccount() -> Bool { 16 | let adapters = ParticleConnect.getAdapters(chainType: .solana) + ParticleConnect.getAdapters(chainType: .evm) 17 | let accounts = adapters.map { 18 | $0.getAccounts() 19 | }.flatMap { 20 | $0 21 | }.filter { 22 | !$0.publicAddress.isEmpty 23 | } 24 | 25 | if accounts.count > 0 { 26 | return true 27 | } else { 28 | return false 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Demo/Demo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/5/12. 6 | // 7 | 8 | import AuthCoreAdapter 9 | import ConnectCommon 10 | import ConnectEVMAdapter 11 | import ConnectPhantomAdapter 12 | import ConnectSolanaAdapter 13 | import ConnectWalletConnectAdapter 14 | import ParticleAA 15 | import ParticleConnect 16 | import ParticleNetworkBase 17 | import ParticleWalletConnect 18 | import ParticleWalletGUI 19 | import UIKit 20 | 21 | @main 22 | class AppDelegate: UIResponder, UIApplicationDelegate { 23 | var window: UIWindow? 24 | 25 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 26 | // init ParticleNetwork 27 | 28 | let adapters: [ConnectAdapter] = [ 29 | MetaMaskConnectAdapter(), 30 | AuthCoreAdapter(), 31 | PhantomConnectAdapter(), 32 | WalletConnectAdapter(), 33 | RainbowConnectAdapter(), 34 | BitgetConnectAdapter(), 35 | ImtokenConnectAdapter(), 36 | TrustConnectAdapter(), 37 | ZerionConnectAdapter(), 38 | MathConnectAdapter(), 39 | Inch1ConnectAdapter(), 40 | ZengoConnectAdapter(), 41 | AlphaConnectAdapter(), 42 | OKXConnectAdapter(), 43 | EVMConnectAdapter(), 44 | SolanaConnectAdapter() 45 | ] 46 | 47 | // select a network 48 | ParticleConnect.initialize(env: .debug, chainInfo: .ethereum, dAppData: .standard, adapters: adapters) 49 | 50 | ParticleWalletGUI.setAdapters(ParticleConnect.getAllAdapters()) 51 | 52 | // ParticleConnect.setWalletConnectV2SupportChainInfos([.ethereum, .polygon]) 53 | 54 | // Custom Wallet GUI 55 | // Control if show test network 56 | ParticleWalletGUI.setShowTestNetwork(true) 57 | // Control support chains 58 | // ParticleWalletGUI.setSupportChain([.bnbChain, .arbitrum, .harmony]) 59 | 60 | // Control if show manage wallet 61 | // ParticleWalletGUI.showManageWallet(true) 62 | 63 | // Control disable pay feature 64 | // ParticleWalletGUI.setPayDisabled(true) 65 | // Control disable swap feature 66 | // ParticleWalletGUI.setSwapDisabled(true) 67 | 68 | // show language setting in setting page 69 | ParticleWalletGUI.setShowLanguageSetting(true) 70 | // show appearance setting in setting page 71 | ParticleWalletGUI.setShowAppearanceSetting(true) 72 | // Set appearance 73 | // ParticleNetwork.setAppearance(.unspecified) 74 | 75 | // Set custom ui is pass json string 76 | // let jsonString = "" 77 | // try! ParticleWalletGUI.loadCustomUIJsonString(jsonString) 78 | 79 | // Initialize particle wallet connect sdk 80 | ParticleWalletConnect.initialize( 81 | WalletMetaData(name: "Particle Wallet", 82 | icon: URL(string: "https://connect.particle.network/icons/512.png")!, 83 | url: URL(string: "https://particle.network")!, 84 | description: "Particle Wallet", 85 | redirectUniversalLink: nil)) 86 | 87 | // Control if disable wallet connect feature. 88 | // If disable wallet connect feature, you dont need to initialize particle Wallet Connect. 89 | ParticleWalletGUI.setSupportWalletConnect(true) 90 | 91 | // Initialize AA service 92 | AAService.initialize(name: AA.AccountName.biconomyV1) 93 | // create a aa service 94 | let aaService = AAService() 95 | // set it to ParticleNetwork 96 | ParticleNetwork.setAAService(aaService) 97 | 98 | ParticleNetwork.setSecurityAccountConfig(config: .init(promptSettingWhenSign: 1, promptMasterPasswordSettingWhenLogin: 2)) 99 | let rootVC = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() 100 | window = UIWindow(frame: UIScreen.main.bounds) 101 | window?.rootViewController = rootVC 102 | window?.makeKeyAndVisible() 103 | 104 | return true 105 | } 106 | 107 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 108 | // if open Wallet Connect in GUI, you should call this method to handle wallet connect 109 | // You need paste your app scheme, GUI will return true if it can reslove the url with your scheme, otherwise return false. 110 | if ParticleWalletGUI.handleWalletConnectUrl(url, withScheme: "particlewallet") { 111 | return true 112 | } else { 113 | return ParticleConnect.handleUrl(url) 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /Demo/Demo/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 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | {"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]} -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/apple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "apple.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/apple.imageset/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/apple.imageset/apple.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "close.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/close.imageset/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/close.imageset/close.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/demo_metamask.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "metamask.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/demo_metamask.imageset/metamask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/demo_metamask.imageset/metamask.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/discord.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "discord.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/discord.imageset/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/discord.imageset/discord.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/email.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "email.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/email.imageset/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/email.imageset/email.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/facebook.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "facebook.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/facebook.imageset/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/facebook.imageset/facebook.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/google.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "google.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/google.imageset/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/google.imageset/google.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/launch.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "image.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/launch.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/launch.imageset/image.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_bg.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_bg.imageset/main_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/main_bg.imageset/main_bg.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_0.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_0.imageset/main_image_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/main_image_0.imageset/main_image_0.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_1.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_1.imageset/main_image_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/main_image_1.imageset/main_image_1.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_2.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_2.imageset/main_image_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/main_image_2.imageset/main_image_2.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_3.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_image_3.imageset/main_image_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/main_image_3.imageset/main_image_3.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_logo.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/main_logo.imageset/main_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/main_logo.imageset/main_logo.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/more_wallet.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "more.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/more_wallet.imageset/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/more_wallet.imageset/more.png -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/particle_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "particle_icon.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo/Demo/Assets.xcassets/particle_icon.imageset/particle_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/Assets.xcassets/particle_icon.imageset/particle_icon.png -------------------------------------------------------------------------------- /Demo/Demo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Demo/Demo/Extensions/Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Extensions.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/8/15. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | extension UIViewController { 13 | func showToast(title: String, message: String?) { 14 | let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) 15 | alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in 16 | 17 | })) 18 | present(alert, animated: true) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Demo/Demo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | CFBundleTypeRole 17 | Editor 18 | CFBundleURLSchemes 19 | 20 | particlewallet 21 | 22 | 23 | 24 | LSApplicationQueriesSchemes 25 | 26 | metamask 27 | phantom 28 | bitkeep 29 | imtokenv2 30 | rainbow 31 | trust 32 | gnosissafe 33 | zerion 34 | mathwallet 35 | argent 36 | 1inch 37 | awallet 38 | okex 39 | bnc 40 | 41 | NSPhotoLibraryUsageDescription 42 | We need access in order to open photos of barcodes 43 | NSCameraUsageDescription 44 | We use the camera to scan barcodes 45 | NSFaceIDUsageDescription 46 | We use Face ID for secure access to the app. 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo/Demo/Models/MainDataModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainDataModel.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/8/12. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | struct MainDataModel { 13 | let imageName: String 14 | let message: String 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | ENV 14 | production 15 | PROJECT_UUID 16 | 772f7499-1d2e-40f4-8e2c-7b6dd47db9de 17 | PROJECT_CLIENT_KEY 18 | ctWeIc2UBA6sYTKJknT9cu9LBikF00fbk1vmQjsV 19 | PROJECT_APP_UUID 20 | 2db718b1-5e1e-4184-849f-b4efc606e782 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Demo/Demo/Views/MainCollectionCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CVCell.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/8/12. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | final class MainCollectionCell: UICollectionViewCell { 13 | 14 | let imageView = UIImageView() 15 | 16 | override init(frame: CGRect) { 17 | super.init(frame: frame) 18 | config() 19 | } 20 | 21 | @available(*, unavailable) 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | 26 | private func config() { 27 | 28 | addSubview(imageView) 29 | imageView.contentMode = .scaleAspectFit 30 | imageView.snp.makeConstraints { make in 31 | make.left.right.top.bottom.equalToSuperview() 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Demo/Demo/customUIConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "light": { 3 | "colorAccent": "#386ef2", 4 | "textColor": "#181B1E", 5 | "textColorSecondary": "#8B8EA1", 6 | "textColorTertiary": "#DCDFE6", 7 | "backgroundColor": "#FFFFFF", 8 | "backgroundColorSecondary": "#FFFFFF", 9 | "backgroundColorTertiary": "#EAECF0", 10 | "buttonTextColor": "#FFFFFF", 11 | "buttonBackgroundColor": "#181B1E", 12 | "cancelButtonBackgroundColor": "#666666", 13 | "cancelButtonTextColor": "#181B1E" 14 | }, 15 | "dark": { 16 | "colorAccent": "#7DD5F9", 17 | "textColor": "#FFFFFF", 18 | "textColorSecondary": "#8B8EA1", 19 | "textColorTertiary": "#42444B", 20 | "backgroundColor": "#181B1E", 21 | "backgroundColorSecondary": "#1C1D22", 22 | "backgroundColorTertiary": "#303139", 23 | "buttonTextColor": "#181B1E", 24 | "buttonBackgroundColor": "#FFFFFF", 25 | "cancelButtonBackgroundColor": "#666666", 26 | "cancelButtonTextColor": "#181B1E" 27 | } 28 | } 29 | 30 | 31 | -------------------------------------------------------------------------------- /Demo/Demo/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo/Demo/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Demo/Demo/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "1つのウォレットでマルチチェーン資産を管理"; 2 | "main message 1" = "オンラインデータ、リアルタイム更新"; 3 | "main message 2" = "あなたのNFT資産を見る"; 4 | "main message 3" = "ブロックチェーンの世界に簡単にアクセス"; 5 | 6 | "login with" = "%@を使用したログイン"; 7 | "email" = "メールボックス"; 8 | "phone number" = "携帯番号"; 9 | "login or sign up" = "ログインまたは登録"; 10 | 11 | -------------------------------------------------------------------------------- /Demo/Demo/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "하나의 지갑으로 멀티체인 자산 관리"; 2 | "main message 1" = "온라인 데이터, 실시간 업데이트"; 3 | "main message 2" = "NFT 자산 보기"; 4 | "main message 3" = "블록체인 세계에 쉽게 접근"; 5 | 6 | "login with" = "%@ 로그인 사용"; 7 | "email" = "메일박스"; 8 | "phone number" = "핸드폰 번호"; 9 | "login or sign up" = "로그인 또는 등록"; 10 | -------------------------------------------------------------------------------- /Demo/Demo/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "一个钱包管理多链资产"; 2 | "main message 1" = "在线数据,实时更新"; 3 | "main message 2" = "查看你的NFT资产"; 4 | "main message 3" = "轻松进入区块链世界"; 5 | 6 | "login with" = "使用%@登录"; 7 | "email" = "邮箱"; 8 | "phone number" = "手机号"; 9 | "login or sign up" = "登录或注册"; 10 | -------------------------------------------------------------------------------- /Demo/Demo/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "一個錢包管理多鏈資產"; 2 | "main message 1" = "線上數據,即時更新"; 3 | "main message 2" = "查看你的NFT資產"; 4 | "main message 3" = "輕鬆進入區塊鏈世界"; 5 | 6 | "login with" = "使用%@登入"; 7 | "email" = "郵箱"; 8 | "phone number" = "手機號"; 9 | "login or sign up" = "登入或註冊"; 10 | 11 | 12 | -------------------------------------------------------------------------------- /Demo/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '15.6' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'Demo' do 5 | use_frameworks! 6 | 7 | pod 'ParticleAA', '2.0.9' 8 | pod 'ParticleNetworkBase', '2.0.9' 9 | pod 'ParticleWalletAPI', '2.0.9' 10 | pod 'ParticleWalletConnect', '2.0.9' 11 | pod 'ParticleWalletGUI', '2.0.9' 12 | 13 | pod 'ParticleNetworkChains', '2.0.8' 14 | 15 | 16 | pod 'ConnectCommon', '2.0.8' 17 | pod 'ConnectEVMAdapter', '2.0.8' 18 | pod 'ConnectPhantomAdapter', '2.0.8' 19 | pod 'ConnectSolanaAdapter', '2.0.8' 20 | pod 'ConnectWalletConnectAdapter', '2.0.8' 21 | 22 | pod 'ParticleConnect', '2.0.8' 23 | 24 | 25 | pod 'Thresh', '2.0.9' 26 | pod 'ParticleMPCCore', '2.0.9' 27 | pod 'ParticleAuthCore', '2.0.9' 28 | pod 'AuthCoreAdapter', '2.0.9' 29 | 30 | pod 'ParticleConnectKit', '2.0.9' 31 | 32 | # from 1.14.0 you need add this line. 33 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 34 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 35 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 36 | # if you need ParticleAuthCore or ParticleWalletGUI, you should add this line. 37 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 38 | 39 | end 40 | 41 | 42 | post_install do |installer| 43 | installer.pods_project.targets.each do |target| 44 | target.build_configurations.each do |config| 45 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 46 | end 47 | end 48 | 49 | 50 | # This is necessary for Xcode 14, because it signs resource bundles by default 51 | # when building for devices. 52 | installer.target_installation_results.pod_target_installation_results 53 | .each do |pod_name, target_installation_result| 54 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 55 | resource_bundle_target.build_configurations.each do |config| 56 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 57 | end 58 | end 59 | end 60 | 61 | installer.generated_projects.each do |project| 62 | project.targets.each do |target| 63 | target.build_configurations.each do |config| 64 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.6' 65 | end 66 | end 67 | end 68 | 69 | installer.pods_project.targets.each do |target| 70 | target.build_configurations.each do |config| 71 | xcconfig_path = config.base_configuration_reference.real_path 72 | xcconfig = File.read(xcconfig_path) 73 | xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR") 74 | File.open(xcconfig_path, "w") { |file| file << xcconfig_mod } 75 | end 76 | end 77 | 78 | end 79 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/APIReferenceViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // APIReferenceViewController.h 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface APIReferenceViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/21. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow *window; 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/21. 6 | // 7 | 8 | #import "AppDelegate.h" 9 | #import "DemoObjc-Swift.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 18 | 19 | [ParticleConnectWrapper initParticleConnect]; 20 | 21 | UIViewController *rootVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateInitialViewController]; 22 | _window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 23 | _window.rootViewController = rootVC; 24 | [_window makeKeyAndVisible]; 25 | 26 | return YES; 27 | } 28 | 29 | - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { 30 | return [ParticleConnectWrapper handleUrlWithUrl:url]; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/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 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | {"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]} -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/apple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "apple.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/apple.imageset/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/apple.imageset/apple.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "background.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 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/background.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/background.imageset/background.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/core.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "core.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 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/core.imageset/core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/core.imageset/core.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/email.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "email.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/email.imageset/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/email.imageset/email.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/facebook.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "facebook.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/facebook.imageset/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/facebook.imageset/facebook.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/google.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "google.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/google.imageset/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/google.imageset/google.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon.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 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/icon.imageset/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/icon.imageset/icon.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/particle_network.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "logo.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 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/particle_network.imageset/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/particle_network.imageset/logo.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/phone.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "phone.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/phone.imageset/phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/phone.imageset/phone.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/welcome.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "welcome.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 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Assets.xcassets/welcome.imageset/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/DemoObjc_deprecated/DemoObjc/Assets.xcassets/welcome.imageset/welcome.png -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/DemoObjc-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | LSApplicationQueriesSchemes 17 | 18 | metamask 19 | phantom 20 | bitkeep 21 | imtokenv2 22 | rainbow 23 | trust 24 | gnosissafe 25 | zerion 26 | mathwallet 27 | argent 28 | 1inch 29 | awallet 30 | okex 31 | 32 | NSAppTransportSecurity 33 | 34 | NSAllowsArbitraryLoads 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/MainViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.h 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface MainViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/NSData+Extensions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSData+Extensions.h 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/22. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface NSData (Extensions) 13 | - (NSString *) hexString; 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/NSData+Extensions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSData+Extensions.m 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/22. 6 | // 7 | 8 | #import "NSData+Extensions.h" 9 | 10 | @implementation NSData (Extensions) 11 | - (NSString *) hexString 12 | { 13 | NSUInteger bytesCount = self.length; 14 | if (bytesCount) { 15 | const char *hexChars = "0123456789ABCDEF"; 16 | const unsigned char *dataBuffer = self.bytes; 17 | char *chars = malloc(sizeof(char) * (bytesCount * 2 + 1)); 18 | if (chars == NULL) { 19 | // malloc returns null if attempting to allocate more memory than the system can provide. Thanks Cœur 20 | [NSException raise:NSInternalInconsistencyException format:@"Failed to allocate more memory" arguments:nil]; 21 | return nil; 22 | } 23 | char *s = chars; 24 | for (unsigned i = 0; i < bytesCount; ++i) { 25 | *s++ = hexChars[((*dataBuffer & 0xF0) >> 4)]; 26 | *s++ = hexChars[(*dataBuffer & 0x0F)]; 27 | dataBuffer++; 28 | } 29 | *s = '\0'; 30 | NSString *hexString = [NSString stringWithUTF8String:chars]; 31 | free(chars); 32 | return hexString; 33 | } 34 | return @""; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/ParticleConnectWrapper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bridge.swift 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/8/12. 6 | // 7 | 8 | import ConnectCommon 9 | import ConnectEVMAdapter 10 | import ConnectPhantomAdapter 11 | import ConnectSolanaAdapter 12 | import ConnectWalletConnectAdapter 13 | import Foundation 14 | import ParticleAuthAdapter 15 | import ParticleConnect 16 | import ParticleNetworkBase 17 | import ParticleWalletConnect 18 | import ParticleWalletGUI 19 | 20 | public class ParticleConnectWrapper: NSObject { 21 | @objc public static func initParticleConnect() { 22 | var adapters: [ConnectAdapter] = [ 23 | MetaMaskConnectAdapter(), 24 | ParticleAuthAdapter(), 25 | PhantomConnectAdapter(), 26 | WalletConnectAdapter(), 27 | RainbowConnectAdapter(), 28 | BitkeepConnectAdapter(), 29 | ImtokenConnectAdapter(), 30 | TrustConnectAdapter(), 31 | ZerionConnectAdapter(), 32 | MathConnectAdapter(), 33 | Inch1ConnectAdapter(), 34 | ZengoConnectAdapter(), 35 | AlphaConnectAdapter(), 36 | OKXConnectAdapter() 37 | ] 38 | 39 | adapters.append(EVMConnectAdapter()) 40 | adapters.append(SolanaConnectAdapter()) 41 | 42 | ParticleConnect.initialize(env: .debug, chainInfo: .ethereum, dAppData: .standard) { 43 | adapters 44 | } 45 | 46 | // Custom your wallet 47 | ParticleWalletGUI.setShowTestNetwork(false) 48 | ParticleWalletGUI.setSupportChain([.bnbChain, .arbitrumOne, .harmony]) 49 | ParticleWalletGUI.setShowManageWallet(true) 50 | // Initialize particle wallet connect sdk 51 | ParticleWalletConnect.initialize( 52 | WalletMetaData(name: "Particle Wallet", 53 | icon: URL(string: "https://connect.particle.network/icons/512.png")!, 54 | url: URL(string: "https://particle.network")!, 55 | description: "Particle Wallet", 56 | redirectUniversalLink: nil)) 57 | // set wallet connect v2 project id to ParticleWalletConnect, used when connect as a wallet. 58 | ParticleWalletConnect.setWalletConnectV2ProjectId("75ac08814504606fc06126541ace9df6") 59 | } 60 | 61 | @objc public static func handleUrl(url: URL) -> Bool { 62 | return ParticleConnect.handleUrl(url) 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PROJECT_UUID 6 | YOUR_PROJECT_UUID 7 | PROJECT_CLIENT_KEY 8 | YOUR_PROJECT_CLIENT_KEY 9 | PROJECT_APP_UUID 10 | YOUR_PROJECT_APP_UUID 11 | 12 | 13 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/SwitchChainViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchChainViewController.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/6/6. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import ParticleNetworkBase 11 | import RxSwift 12 | import UIKit 13 | 14 | class SwitchChainViewController: UIViewController { 15 | let bag = DisposeBag() 16 | 17 | @objc var selectHandler: (() -> Void)? 18 | let tableView = UITableView(frame: .zero, style: .grouped) 19 | 20 | var data: [[String: [ParticleNetwork.ChainInfo]]] = [] 21 | 22 | override func viewDidLoad() { 23 | super.viewDidLoad() 24 | configureData() 25 | configureTableView() 26 | } 27 | 28 | func configureData() { 29 | let chainInfos = ParticleNetwork.ChainInfo.allNetworks 30 | 31 | let groupDict = Dictionary(grouping: chainInfos, by: { $0.name }) 32 | 33 | data = groupDict.map { [$0.key: $0.value] }.sorted(by: { dict0, dict1 in 34 | let chainInfo0 = dict0.values.first!.first! 35 | let chainInfo1 = dict1.values.first!.first! 36 | let index0 = chainInfos.firstIndex(of: chainInfo0)! 37 | let index1 = chainInfos.firstIndex(of: chainInfo1)! 38 | return index0 < index1 39 | }) 40 | } 41 | 42 | func configureTableView() { 43 | view.addSubview(tableView) 44 | 45 | tableView.translatesAutoresizingMaskIntoConstraints = false 46 | NSLayoutConstraint.activate([ 47 | tableView.topAnchor.constraint(equalTo: view.topAnchor), 48 | tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor), 49 | tableView.leftAnchor.constraint(equalTo: view.leftAnchor), 50 | tableView.rightAnchor.constraint(equalTo: view.rightAnchor) 51 | ]) 52 | 53 | tableView.register(UITableViewCell.self, forCellReuseIdentifier: NSStringFromClass(UITableViewCell.self)) 54 | 55 | tableView.delegate = self 56 | tableView.dataSource = self 57 | } 58 | } 59 | 60 | extension SwitchChainViewController: UITableViewDataSource { 61 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 62 | return data[section].values.first?.count ?? 0 63 | } 64 | 65 | func numberOfSections(in tableView: UITableView) -> Int { 66 | return data.count 67 | } 68 | 69 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 70 | let cell = tableView.dequeueReusableCell(withIdentifier: NSStringFromClass(UITableViewCell.self), for: indexPath) 71 | let network = data[indexPath.section].values.first?[indexPath.row].network ?? "" 72 | cell.textLabel?.text = network 73 | cell.selectionStyle = .none 74 | return cell 75 | } 76 | 77 | func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 78 | data[section].keys.first 79 | } 80 | } 81 | 82 | extension SwitchChainViewController: UITableViewDelegate { 83 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 84 | let chainInfo = data[indexPath.section].values.first?[indexPath.row] ?? ParticleNetwork.ChainInfo.ethereum 85 | 86 | ParticleNetwork.setChainInfo(chainInfo) 87 | 88 | let alert = UIAlertController(title: "Switch network", message: "current network is \(chainInfo.name) - \(chainInfo.network)", preferredStyle: .alert) 89 | alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in 90 | 91 | if let selectHandler = self.selectHandler { 92 | selectHandler() 93 | } 94 | self.dismiss(animated: true) 95 | })) 96 | 97 | present(alert, animated: true) 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/DemoObjc/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // DemoObjc 4 | // 5 | // Created by link on 2022/6/21. 6 | // 7 | 8 | #import 9 | #import "AppDelegate.h" 10 | 11 | int main(int argc, char * argv[]) { 12 | NSString * appDelegateClassName; 13 | @autoreleasepool { 14 | // Setup code that might create autoreleased objects goes here. 15 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 16 | } 17 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 18 | } 19 | -------------------------------------------------------------------------------- /DemoObjc_deprecated/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'DemoObjc' do 5 | use_frameworks! 6 | pod 'ParticleWalletGUI', '1.4.9' 7 | pod 'ParticleWalletAPI', '1.4.9' 8 | pod 'ParticleNetworkBase', '1.4.9' 9 | pod 'ParticleAuthService', '1.4.9' 10 | pod 'ParticleWalletConnect', '1.4.9' 11 | pod 'ParticleAA', '1.4.9' 12 | 13 | pod 'ParticleAuthAdapter', '0.2.24' 14 | pod 'ParticleConnect', '0.2.24' 15 | pod 'ConnectWalletConnectAdapter', '0.2.24' 16 | pod 'ConnectEVMAdapter', '0.2.24' 17 | pod 'ConnectSolanaAdapter', '0.2.24' 18 | pod 'ConnectPhantomAdapter', '0.2.24' 19 | pod 'ConnectCommon', '0.2.24' 20 | 21 | # from 1.14.0 you need add this line. 22 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 23 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 24 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 25 | # if you need ParticleAuthCore or ParticleWalletGUI, you should add this line. 26 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 27 | end 28 | 29 | post_install do |installer| 30 | installer.pods_project.targets.each do |target| 31 | target.build_configurations.each do |config| 32 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 33 | end 34 | end 35 | 36 | # This is necessary for Xcode 14, because it signs resource bundles by default 37 | # when building for devices. 38 | installer.target_installation_results.pod_target_installation_results 39 | .each do |pod_name, target_installation_result| 40 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 41 | resource_bundle_target.build_configurations.each do |config| 42 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 43 | end 44 | end 45 | end 46 | 47 | 48 | installer.pods_project.targets.each do |target| 49 | target.build_configurations.each do |config| 50 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "14.0" 51 | end 52 | end 53 | 54 | end 55 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/AccountChecker.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccountChecker.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/7/25. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import ConnectCommon 10 | import Foundation 11 | import ParticleConnect 12 | import ParticleNetworkBase 13 | 14 | class AccountChecker { 15 | public static func hasAccount() -> Bool { 16 | let adapters = ParticleConnect.getAdapters(chainType: .solana) + ParticleConnect.getAdapters(chainType: .evm) 17 | let accounts = adapters.map { 18 | $0.getAccounts() 19 | }.flatMap { 20 | $0 21 | }.filter { 22 | !$0.publicAddress.isEmpty 23 | } 24 | 25 | if accounts.count > 0 { 26 | return true 27 | } else { 28 | return false 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/5/12. 6 | // 7 | 8 | import ConnectCommon 9 | import ConnectEVMAdapter 10 | import ConnectPhantomAdapter 11 | import ConnectSolanaAdapter 12 | import ConnectWalletConnectAdapter 13 | import ParticleAA 14 | import ParticleAuthAdapter 15 | import ParticleAuthService 16 | import ParticleConnect 17 | import ParticleNetworkBase 18 | import ParticleWalletConnect 19 | import ParticleWalletGUI 20 | import UIKit 21 | 22 | @main 23 | class AppDelegate: UIResponder, UIApplicationDelegate { 24 | var window: UIWindow? 25 | 26 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 27 | // init ParticleNetwork 28 | 29 | var adapters: [ConnectAdapter] = [ 30 | MetaMaskConnectAdapter(), 31 | ParticleAuthAdapter(), 32 | PhantomConnectAdapter(), 33 | WalletConnectAdapter(), 34 | RainbowConnectAdapter(), 35 | BitkeepConnectAdapter(), 36 | ImtokenConnectAdapter(), 37 | TrustConnectAdapter(), 38 | ZerionConnectAdapter(), 39 | MathConnectAdapter(), 40 | Inch1ConnectAdapter(), 41 | ZengoConnectAdapter(), 42 | AlphaConnectAdapter(), 43 | OKXConnectAdapter() 44 | ] 45 | 46 | adapters.append(EVMConnectAdapter()) 47 | adapters.append(SolanaConnectAdapter()) 48 | 49 | // select a network 50 | ParticleConnect.initialize(env: .debug, chainInfo: .ethereum, dAppData: .standard) { 51 | adapters 52 | } 53 | 54 | // set wallet connect v2 project id to ParticleConnectSDK, used when connect as a dapp. 55 | ParticleConnect.setWalletConnectV2ProjectId("75ac08814504606fc06126541ace9df6") 56 | ParticleConnect.setWalletConnectV2SupportChainInfos([.ethereum, .polygon]) 57 | 58 | // Custom Wallet GUI 59 | // Control if show test network 60 | ParticleWalletGUI.setShowTestNetwork(true) 61 | // Control support chains 62 | // ParticleWalletGUI.setSupportChain([.bsc, .arbitrum, .harmony]) 63 | 64 | // Control if show manage wallet 65 | // ParticleWalletGUI.showManageWallet(true) 66 | 67 | // Control disable pay feature 68 | // ParticleWalletGUI.setPayDisabled(true) 69 | // Control disable swap feature 70 | // ParticleWalletGUI.setSwapDisabled(true) 71 | 72 | // show language setting in setting page 73 | ParticleWalletGUI.setShowLanguageSetting(true) 74 | // show appearance setting in setting page 75 | ParticleWalletGUI.setShowAppearanceSetting(true) 76 | // Set appearance 77 | // ParticleNetwork.setAppearance(.unspecified) 78 | 79 | // Set custom ui is pass json string 80 | // let jsonString = "" 81 | // try! ParticleWalletGUI.loadCustomUIJsonString(jsonString) 82 | 83 | // Initialize particle wallet connect sdk 84 | ParticleWalletConnect.initialize( 85 | WalletMetaData(name: "Particle Wallet", 86 | icon: URL(string: "https://connect.particle.network/icons/512.png")!, 87 | url: URL(string: "https://particle.network")!, 88 | description: "Particle Wallet", 89 | redirectUniversalLink: nil)) 90 | // set wallet connect v2 project id to ParticleWalletConnect, used when connect as a wallet. 91 | ParticleWalletConnect.setWalletConnectV2ProjectId("75ac08814504606fc06126541ace9df6") 92 | // Control if disable wallet connect feature. 93 | // If disable wallet connect feature, you dont need to initialize particle Wallet Connect. 94 | ParticleWalletGUI.setSupportWalletConnect(true) 95 | 96 | // Initialize AA service 97 | AAService.initialize(name: AA.AccountName.biconomyV1, biconomyApiKeys: [:]) 98 | // create a aa service 99 | let aaService = AAService() 100 | // set it to ParticleNetwork 101 | ParticleNetwork.setAAService(aaService) 102 | 103 | ParticleNetwork.setSecurityAccountConfig(config: .init(promptSettingWhenSign: 1, promptMasterPasswordSettingWhenLogin: 2)) 104 | let rootVC = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() 105 | window = UIWindow(frame: UIScreen.main.bounds) 106 | window?.rootViewController = rootVC 107 | window?.makeKeyAndVisible() 108 | 109 | return true 110 | } 111 | 112 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 113 | // if open Wallet Connect in GUI, you should call this method to handle wallet connect 114 | // You need paste your app scheme, GUI will return true if it can reslove the url with your scheme, otherwise return false. 115 | if ParticleWalletGUI.handleWalletConnectUrl(url, withScheme: "particlewallet") { 116 | return true 117 | } else { 118 | return ParticleConnect.handleUrl(url) 119 | } 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/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 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | {"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]} -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/apple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "apple.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/apple.imageset/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/apple.imageset/apple.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "close.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/close.imageset/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/close.imageset/close.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/demo_metamask.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "metamask.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/demo_metamask.imageset/metamask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/demo_metamask.imageset/metamask.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/discord.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "discord.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/discord.imageset/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/discord.imageset/discord.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/email.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "email.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/email.imageset/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/email.imageset/email.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/facebook.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "facebook.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/facebook.imageset/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/facebook.imageset/facebook.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/google.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "google.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/google.imageset/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/google.imageset/google.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/launch.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "image.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/launch.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/launch.imageset/image.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_bg.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_bg.imageset/main_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_bg.imageset/main_bg.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_0.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_0.imageset/main_image_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_0.imageset/main_image_0.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_1.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_1.imageset/main_image_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_1.imageset/main_image_1.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_2.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_2.imageset/main_image_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_2.imageset/main_image_2.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_image_3.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_3.imageset/main_image_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_image_3.imageset/main_image_3.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "main_logo.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_logo.imageset/main_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/main_logo.imageset/main_logo.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/more_wallet.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "more.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/more_wallet.imageset/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/Assets.xcassets/more_wallet.imageset/more.png -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Extensions/Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Extensions.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/8/15. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | extension UIViewController { 13 | func showToast(title: String, message: String?) { 14 | let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) 15 | alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in 16 | 17 | })) 18 | present(alert, animated: true) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | CFBundleTypeRole 17 | Editor 18 | CFBundleURLSchemes 19 | 20 | particlewallet 21 | 22 | 23 | 24 | LSApplicationQueriesSchemes 25 | 26 | metamask 27 | phantom 28 | bitkeep 29 | imtokenv2 30 | rainbow 31 | trust 32 | gnosissafe 33 | zerion 34 | mathwallet 35 | argent 36 | 1inch 37 | awallet 38 | okex 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Models/MainDataModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainDataModel.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/8/12. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | struct MainDataModel { 13 | let imageName: String 14 | let message: String 15 | } 16 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | ENV 14 | production 15 | PROJECT_UUID 16 | 772f7499-1d2e-40f4-8e2c-7b6dd47db9de 17 | PROJECT_CLIENT_KEY 18 | ctWeIc2UBA6sYTKJknT9cu9LBikF00fbk1vmQjsV 19 | PROJECT_APP_UUID 20 | 2db718b1-5e1e-4184-849f-b4efc606e782 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/Views/MainCollectionCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CVCell.swift 3 | // Demo 4 | // 5 | // Created by link on 2022/8/12. 6 | // Copyright © 2022 ParticleNetwork. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | final class MainCollectionCell: UICollectionViewCell { 13 | 14 | let imageView = UIImageView() 15 | 16 | override init(frame: CGRect) { 17 | super.init(frame: frame) 18 | config() 19 | } 20 | 21 | @available(*, unavailable) 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | 26 | private func config() { 27 | 28 | addSubview(imageView) 29 | imageView.contentMode = .scaleAspectFit 30 | imageView.snp.makeConstraints { make in 31 | make.left.right.top.bottom.equalToSuperview() 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/customUIConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "supportAddToken": true, 3 | "supportChains": [ 4 | { 5 | "id": 1, 6 | "name": "Ethereum" 7 | }, 8 | { 9 | "id": 5, 10 | "name": "Ethereum" 11 | } 12 | ], 13 | "displayTokenAddresses": ["0xaFF4481D10270F50f203E0763e2597776068CBc5"], 14 | "displayNFTContractAddresses": ["0x894A6637DFde120b27B7EFEa7a913C6fC2fBaF21"], 15 | "priorityTokenAddresses": ["0x6b175474e89094c44da98b954eede"], 16 | "priorityNFTContractAddresses": ["0x6b175474e89094c44da98b954eede"], 17 | "fiatCoin": "USD", 18 | "evmSupportWalletConnect": true, 19 | "supportUIModeSwitch": true, 20 | "supportLanguageSwitch": true, 21 | 22 | "light": { 23 | "colorAccent": "#386ef2", 24 | "colorPrimary": "#ffffff", 25 | "colorOnPrimary": "#ffffff", 26 | "primaryButtonBackgroundColors": ["#000000", "#000000"], 27 | "primaryButtonTextColor": "#ffffff", 28 | "primaryIconButtonBackgroundColors": ["#dfe9fd", "#dfe9fd"], 29 | "primaryIconButtonIconColor": "#2D6AF6", 30 | "cancelButtonBackgroundColor": "#666666", 31 | "backgroundColors": [ 32 | "#e5e5e5", 33 | [ 34 | ["#ffffff00", "#ffffff00"], 35 | ["#ffffff00", "#ffffff00"] 36 | ] 37 | ], 38 | "messageColor": ["#7DD5F9", "#ed5d51"], 39 | "borderGlowColors": ["#7bd5f940", "#323233"], 40 | "modalMaskBackgroundColor": "#B31430b3" 41 | }, 42 | 43 | "dark": { 44 | "colorAccent": "#7DD5F9", 45 | "colorPrimary": "#21213a", 46 | "colorOnPrimary": "#171728", 47 | "primaryButtonBackgroundColors": ["#5ED7FF", "#E89DE7"], 48 | "primaryIconButtonBackgroundColors": ["#5ED7FF", "#E89DE7"], 49 | "primaryIconButtonIconColor": "#FFFFFF", 50 | "primaryButtonTextColor": "#0A1161", 51 | "cancelButtonBackgroundColor": "#666666", 52 | "backgroundColors": [ 53 | "#14152e", 54 | [ 55 | ["#e6b1f766", "#e6b1f700"], 56 | ["#7dd5f94d", "#7dd5f900"] 57 | ] 58 | ], 59 | "messageColor": ["#7DD5F9", "#ed5d51"], 60 | "borderGlowColors": ["#7bd5f940", "#323233"], 61 | "modalMaskBackgroundColor": "#B31430b3" 62 | } 63 | } 64 | 65 | 66 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particle-Network/particle-ios/b8e4b45d0143b12ce00ccf93077397abc59ce26c/Demo_ParticleAuth_deprecated/Demo/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "1つのウォレットでマルチチェーン資産を管理"; 2 | "main message 1" = "オンラインデータ、リアルタイム更新"; 3 | "main message 2" = "あなたのNFT資産を見る"; 4 | "main message 3" = "ブロックチェーンの世界に簡単にアクセス"; 5 | 6 | "login with" = "%@を使用したログイン"; 7 | "email" = "メールボックス"; 8 | "phone number" = "携帯番号"; 9 | 10 | 11 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "하나의 지갑으로 멀티체인 자산 관리"; 2 | "main message 1" = "온라인 데이터, 실시간 업데이트"; 3 | "main message 2" = "NFT 자산 보기"; 4 | "main message 3" = "블록체인 세계에 쉽게 접근"; 5 | 6 | "login with" = "%@ 로그인 사용"; 7 | "email" = "메일박스"; 8 | "phone number" = "핸드폰 번호"; 9 | 10 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "一个钱包管理多链资产"; 2 | "main message 1" = "在线数据,实时更新"; 3 | "main message 2" = "查看你的NFT资产"; 4 | "main message 3" = "轻松进入区块链世界"; 5 | 6 | "login with" = "使用%@登录"; 7 | "email" = "邮箱"; 8 | "phone number" = "手机号"; 9 | 10 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Demo/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "main message 0" = "一個錢包管理多鏈資產"; 2 | "main message 1" = "線上數據,即時更新"; 3 | "main message 2" = "查看你的NFT資產"; 4 | "main message 3" = "輕鬆進入區塊鏈世界"; 5 | 6 | "login with" = "使用%@登入"; 7 | "email" = "郵箱"; 8 | "phone number" = "手機號"; 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Demo_ParticleAuth_deprecated/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'Demo' do 5 | use_frameworks! 6 | pod 'ParticleWalletGUI', '1.4.5' 7 | pod 'ParticleWalletAPI', '1.4.5' 8 | pod 'ParticleNetworkBase', '1.4.5' 9 | pod 'ParticleAuthService', '1.4.5' 10 | pod 'ParticleWalletConnect', '1.4.5' 11 | pod 'ParticleAA', '1.4.5' 12 | 13 | pod 'ParticleConnect', '0.2.22' 14 | pod 'ParticleAuthAdapter', '0.2.22' 15 | pod 'ConnectWalletConnectAdapter', '0.2.22' 16 | pod 'ConnectEVMAdapter', '0.2.22' 17 | pod 'ConnectSolanaAdapter', '0.2.22' 18 | pod 'ConnectPhantomAdapter', '0.2.22' 19 | pod 'ConnectCommon', '0.2.22' 20 | 21 | # from 1.14.0 you need add this line. 22 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 23 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 24 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 25 | # if you need ParticleAuthCore or ParticleWalletGUI, you should add this line. 26 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 27 | end 28 | 29 | 30 | post_install do |installer| 31 | installer.pods_project.targets.each do |target| 32 | target.build_configurations.each do |config| 33 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 34 | end 35 | end 36 | 37 | 38 | # This is necessary for Xcode 14, because it signs resource bundles by default 39 | # when building for devices. 40 | installer.target_installation_results.pod_target_installation_results 41 | .each do |pod_name, target_installation_result| 42 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 43 | resource_bundle_target.build_configurations.each do |config| 44 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 45 | end 46 | end 47 | end 48 | 49 | 50 | installer.generated_projects.each do |project| 51 | project.targets.each do |target| 52 | target.build_configurations.each do |config| 53 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0' 54 | end 55 | end 56 | end 57 | 58 | installer.pods_project.targets.each do |target| 59 | target.build_configurations.each do |config| 60 | xcconfig_path = config.base_configuration_reference.real_path 61 | xcconfig = File.read(xcconfig_path) 62 | xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR") 63 | File.open(xcconfig_path, "w") { |file| file << xcconfig_mod } 64 | end 65 | end 66 | 67 | end 68 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ParticleConnectExample 4 | // 5 | // Created by link on 16/11/2023. 6 | // 7 | 8 | import AuthCoreAdapter 9 | import ConnectCommon 10 | import ConnectPhantomAdapter 11 | import ConnectWalletConnectAdapter 12 | import ParticleAA 13 | import ParticleConnect 14 | import ParticleNetworkBase 15 | import UIKit 16 | 17 | @main 18 | class AppDelegate: UIResponder, UIApplicationDelegate { 19 | var window: UIWindow? 20 | 21 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 22 | // Override point for customization after application launch. 23 | 24 | particleInit() 25 | 26 | return true 27 | } 28 | 29 | func particleInit() { 30 | let adapters: [ConnectAdapter] = [ 31 | MetaMaskConnectAdapter(), 32 | AuthCoreAdapter(), 33 | PhantomConnectAdapter(), 34 | WalletConnectAdapter(), 35 | RainbowConnectAdapter(), 36 | BitgetConnectAdapter(), 37 | ImtokenConnectAdapter(), 38 | TrustConnectAdapter(), 39 | ZerionConnectAdapter(), 40 | MathConnectAdapter(), 41 | Inch1ConnectAdapter(), 42 | ZengoConnectAdapter(), 43 | AlphaConnectAdapter(), 44 | OKXConnectAdapter(), 45 | ] 46 | ParticleConnect.initialize(env: .debug, chainInfo: .polygon, adapters: adapters) 47 | 48 | AAService.initialize(name: .biconomyV2) 49 | let aaService = AAService() 50 | ParticleNetwork.setAAService(aaService) 51 | aaService.enableAAMode() 52 | // Set wallet connect chains, 53 | // Note metamask only support one chain for each connection. 54 | // ParticleConnect.setWalletConnectV2SupportChainInfos([.ethereum, .ethereumSepolia, .polygon, .polygonAmoy]) 55 | } 56 | 57 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 58 | return ParticleConnect.handleUrl(url) 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/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 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | UIApplicationSceneManifest 17 | 18 | UIApplicationSupportsMultipleScenes 19 | 20 | UISceneConfigurations 21 | 22 | 23 | LSApplicationQueriesSchemes 24 | 25 | metamask 26 | phantom 27 | bitkeep 28 | imtokenv2 29 | rainbow 30 | trust 31 | gnosissafe 32 | zerion 33 | mathwallet 34 | argent 35 | 1inch 36 | awallet 37 | okex 38 | bnc 39 | 40 | NSPhotoLibraryUsageDescription 41 | We need access in order to open photos of barcodes 42 | NSCameraUsageDescription 43 | We use the camera to scan barcodes 44 | NSFaceIDUsageDescription 45 | We use Face ID for secure access to the app. 46 | 47 | 48 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/ParticleConnectExample/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PROJECT_UUID 6 | 772f7499-1d2e-40f4-8e2c-7b6dd47db9de 7 | PROJECT_CLIENT_KEY 8 | ctWeIc2UBA6sYTKJknT9cu9LBikF00fbk1vmQjsV 9 | PROJECT_APP_UUID 10 | 2db718b1-5e1e-4184-849f-b4efc606e782 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+AA/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'ParticleConnectExample' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | pod 'ParticleNetworkBase', '2.0.4' 9 | pod 'ParticleNetworkChains', '2.0.4' 10 | pod 'ParticleWalletAPI', '2.0.4' 11 | pod 'ParticleAA', '2.0.4' 12 | 13 | pod 'ConnectCommon', '2.0.4' 14 | pod 'ConnectEVMAdapter', '2.0.4' 15 | pod 'ConnectSolanaAdapter', '2.0.4' 16 | pod 'ConnectWalletConnectAdapter', '2.0.4' 17 | pod 'ConnectPhantomAdapter', '2.0.4' 18 | pod 'ParticleConnect', '2.0.4' 19 | 20 | pod 'AuthCoreAdapter', '2.0.4' 21 | pod 'ParticleAuthCore', '2.0.4' 22 | pod 'ParticleMPCCore', '2.0.4' 23 | pod 'Thresh', '2.0.4' 24 | 25 | # from 1.14.0 you need add this line. 26 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 27 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 28 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 29 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 30 | 31 | end 32 | 33 | post_install do |installer| 34 | installer.pods_project.targets.each do |target| 35 | target.build_configurations.each do |config| 36 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 37 | end 38 | end 39 | installer.pods_project.targets.each do |target| 40 | target.build_configurations.each do |config| 41 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "14.0" 42 | end 43 | end 44 | end 45 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ParticleConnectExample 4 | // 5 | // Created by link on 16/11/2023. 6 | // 7 | 8 | import AuthCoreAdapter 9 | import ConnectCommon 10 | import ConnectPhantomAdapter 11 | import ConnectWalletConnectAdapter 12 | import ParticleAA 13 | import ParticleConnect 14 | import ParticleNetworkBase 15 | import ParticleWalletConnect 16 | import UIKit 17 | 18 | @main 19 | class AppDelegate: UIResponder, UIApplicationDelegate { 20 | var window: UIWindow? 21 | 22 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 23 | // Override point for customization after application launch. 24 | 25 | particleInit() 26 | 27 | return true 28 | } 29 | 30 | func particleInit() { 31 | let adapters: [ConnectAdapter] = [ 32 | AuthCoreAdapter(), 33 | MetaMaskConnectAdapter(), 34 | PhantomConnectAdapter(), 35 | WalletConnectAdapter(), 36 | RainbowConnectAdapter(), 37 | BitgetConnectAdapter(), 38 | ImtokenConnectAdapter(), 39 | TrustConnectAdapter(), 40 | ZerionConnectAdapter(), 41 | MathConnectAdapter(), 42 | Inch1ConnectAdapter(), 43 | ZengoConnectAdapter(), 44 | AlphaConnectAdapter(), 45 | OKXConnectAdapter(), 46 | ] 47 | ParticleConnect.initialize(env: .debug, chainInfo: .ethereumSepolia, adapters: adapters) 48 | 49 | AAService.initialize(name: .biconomyV2) 50 | let aaService = AAService() 51 | ParticleNetwork.setAAService(aaService) 52 | aaService.enableAAMode() 53 | // Set wallet connect chains, 54 | // Note metamask only support one chain for each connection. 55 | // ParticleConnect.setWalletConnectV2SupportChainInfos([.ethereum, .ethereumSepolia, .polygon, .polygonAmoy]) 56 | 57 | ParticleWalletConnect.initialize( 58 | WalletMetaData(name: "Particle Wallet", 59 | icon: URL(string: "https://connect.particle.network/icons/512.png")!, 60 | url: URL(string: "https://particle.network")!, 61 | description: "Particle Connect is a decentralized wallet connection protocol that makes it easy for users to connect their wallets to your DApp.", redirectUniversalLink: nil)) 62 | 63 | ParticleWalletConnect.setWalletConnectV2ProjectId("75ac08814504606fc06126541ace9df6") 64 | } 65 | 66 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 67 | return ParticleConnect.handleUrl(url) 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/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 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | UIApplicationSceneManifest 17 | 18 | UIApplicationSupportsMultipleScenes 19 | 20 | UISceneConfigurations 21 | 22 | 23 | LSApplicationQueriesSchemes 24 | 25 | metamask 26 | phantom 27 | bitkeep 28 | imtokenv2 29 | rainbow 30 | trust 31 | gnosissafe 32 | zerion 33 | mathwallet 34 | argent 35 | 1inch 36 | awallet 37 | okex 38 | bnc 39 | 40 | NSPhotoLibraryUsageDescription 41 | We need access in order to open photos of barcodes 42 | NSCameraUsageDescription 43 | We use the camera to scan barcodes 44 | NSFaceIDUsageDescription 45 | We use Face ID for secure access to the app. 46 | 47 | 48 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/ParticleConnectExample/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PROJECT_UUID 6 | 772f7499-1d2e-40f4-8e2c-7b6dd47db9de 7 | PROJECT_CLIENT_KEY 8 | ctWeIc2UBA6sYTKJknT9cu9LBikF00fbk1vmQjsV 9 | PROJECT_APP_UUID 10 | 2db718b1-5e1e-4184-849f-b4efc606e782 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample+WalletUI/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'ParticleConnectExample' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | pod 'ParticleNetworkBase', '2.0.4' 9 | pod 'ParticleNetworkChains', '2.0.4' 10 | pod 'ParticleWalletAPI', '2.0.4' 11 | pod 'ParticleAA', '2.0.4' 12 | pod 'ParticleWalletGUI', '2.0.4' 13 | pod 'ParticleWalletConnect', '2.0.4' 14 | 15 | pod 'ConnectCommon', '2.0.4' 16 | pod 'ConnectEVMAdapter', '2.0.4' 17 | pod 'ConnectSolanaAdapter', '2.0.4' 18 | pod 'ConnectWalletConnectAdapter', '2.0.4' 19 | pod 'ConnectPhantomAdapter', '2.0.4' 20 | pod 'ParticleConnect', '2.0.4' 21 | 22 | pod 'AuthCoreAdapter', '2.0.4' 23 | pod 'ParticleAuthCore', '2.0.4' 24 | pod 'ParticleMPCCore', '2.0.4' 25 | pod 'Thresh', '2.0.4' 26 | 27 | # from 1.14.0 you need add this line. 28 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 29 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 30 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 31 | # if you need ParticleAuthCore or ParticleWalletGUI, you should add this line. 32 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 33 | 34 | 35 | end 36 | 37 | post_install do |installer| 38 | installer.pods_project.targets.each do |target| 39 | target.build_configurations.each do |config| 40 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 41 | end 42 | end 43 | 44 | installer.pods_project.targets.each do |target| 45 | target.build_configurations.each do |config| 46 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "14.0" 47 | end 48 | end 49 | end 50 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ParticleConnectExample 4 | // 5 | // Created by link on 16/11/2023. 6 | // 7 | 8 | import AuthCoreAdapter 9 | import ConnectCommon 10 | import ConnectEVMAdapter 11 | import ConnectPhantomAdapter 12 | import ConnectSolanaAdapter 13 | import ConnectWalletConnectAdapter 14 | import ParticleConnect 15 | import ParticleNetworkChains 16 | import UIKit 17 | 18 | @main 19 | class AppDelegate: UIResponder, UIApplicationDelegate { 20 | var window: UIWindow? 21 | 22 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 23 | // Override point for customization after application launch. 24 | 25 | particleInit() 26 | 27 | return true 28 | } 29 | 30 | func particleInit() { 31 | let adapters: [ConnectAdapter] = [ 32 | AuthCoreAdapter(), 33 | MetaMaskConnectAdapter(), 34 | PhantomConnectAdapter(), 35 | WalletConnectAdapter(), 36 | RainbowConnectAdapter(), 37 | BitgetConnectAdapter(), 38 | ImtokenConnectAdapter(), 39 | TrustConnectAdapter(), 40 | ZerionConnectAdapter(), 41 | MathConnectAdapter(), 42 | Inch1ConnectAdapter(), 43 | ZengoConnectAdapter(), 44 | AlphaConnectAdapter(), 45 | OKXConnectAdapter(), 46 | SolanaConnectAdapter(), 47 | EVMConnectAdapter() 48 | ] 49 | ParticleConnect.initialize(env: .debug, chainInfo: .ethereumSepolia, adapters: adapters) 50 | 51 | // Set wallet connect chains, 52 | // Note metamask only support one chain for each connection. 53 | ParticleConnect.setWalletConnectV2SupportChainInfos([.ethereum, .ethereumSepolia, .polygon, .polygonAmoy]) 54 | } 55 | 56 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 57 | return ParticleConnect.handleUrl(url) 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/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 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | UIApplicationSceneManifest 17 | 18 | UIApplicationSupportsMultipleScenes 19 | 20 | UISceneConfigurations 21 | 22 | 23 | LSApplicationQueriesSchemes 24 | 25 | metamask 26 | phantom 27 | bitkeep 28 | imtokenv2 29 | rainbow 30 | trust 31 | gnosissafe 32 | zerion 33 | mathwallet 34 | argent 35 | 1inch 36 | awallet 37 | okex 38 | bnc 39 | 40 | NSPhotoLibraryUsageDescription 41 | We need access in order to open photos of barcodes 42 | NSCameraUsageDescription 43 | We use the camera to scan barcodes 44 | NSFaceIDUsageDescription 45 | We use Face ID for secure access to the app. 46 | 47 | 48 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/ParticleConnectExample/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PROJECT_UUID 6 | 772f7499-1d2e-40f4-8e2c-7b6dd47db9de 7 | PROJECT_CLIENT_KEY 8 | ctWeIc2UBA6sYTKJknT9cu9LBikF00fbk1vmQjsV 9 | PROJECT_APP_UUID 10 | 2db718b1-5e1e-4184-849f-b4efc606e782 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /GuideSeries/ParticleConnectExample/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'ParticleConnectExample' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | pod 'ParticleNetworkBase', '2.0.4' 9 | pod 'ParticleNetworkChains', '2.0.4' 10 | pod 'ParticleNetworkChains', '2.0.4' 11 | pod 'ParticleWalletAPI', '2.0.4' 12 | 13 | pod 'ConnectCommon', '2.0.4' 14 | pod 'ConnectEVMAdapter', '2.0.4' 15 | pod 'ConnectSolanaAdapter', '2.0.4' 16 | pod 'ConnectWalletConnectAdapter', '2.0.4' 17 | pod 'ConnectPhantomAdapter', '2.0.4' 18 | pod 'ParticleConnect', '2.0.4' 19 | 20 | pod 'AuthCoreAdapter', '2.0.4' 21 | pod 'ParticleAuthCore', '2.0.4' 22 | pod 'ParticleMPCCore', '2.0.4' 23 | pod 'Thresh', '2.0.4' 24 | 25 | # from 1.14.0 you need add this line. 26 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 27 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 28 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 29 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 30 | 31 | end 32 | 33 | post_install do |installer| 34 | installer.pods_project.targets.each do |target| 35 | target.build_configurations.each do |config| 36 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 37 | end 38 | end 39 | 40 | installer.pods_project.targets.each do |target| 41 | target.build_configurations.each do |config| 42 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "14.0" 43 | end 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ParticleAuthDemo_Scene 4 | // 5 | // Created by link on 2022/11/3. 6 | // 7 | 8 | import UIKit 9 | import ParticleNetworkBase 10 | 11 | @main 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | // Initialize Particle Network 18 | ParticleNetwork.initialize(config: .init(chainInfo: .ethereum, devEnv: .debug)) 19 | 20 | return true 21 | } 22 | 23 | // MARK: UISceneSession Lifecycle 24 | 25 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 26 | // Called when a new scene session is being created. 27 | // Use this method to select a configuration to create the new scene with. 28 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 29 | } 30 | 31 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { 32 | // Called when the user discards a scene session. 33 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 34 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 35 | } 36 | 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/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 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | UIApplicationSceneManifest 17 | 18 | UIApplicationSupportsMultipleScenes 19 | 20 | UISceneConfigurations 21 | 22 | UIWindowSceneSessionRoleApplication 23 | 24 | 25 | UISceneConfigurationName 26 | Default Configuration 27 | UISceneDelegateClassName 28 | $(PRODUCT_MODULE_NAME).SceneDelegate 29 | UISceneStoryboardFile 30 | Main 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PROJECT_UUID 6 | YOUR_PROJECT_UUID 7 | PROJECT_CLIENT_KEY 8 | YOUR_PROJECT_CLIENT_KEY 9 | PROJECT_APP_UUID 10 | YOUR_PROJECT_APP_UUID 11 | 12 | 13 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // ParticleAuthDemo_Scene 4 | // 5 | // Created by link on 2022/11/3. 6 | // 7 | 8 | import UIKit 9 | import ParticleAuthService 10 | 11 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 12 | var window: UIWindow? 13 | 14 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 15 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 16 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 17 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 18 | guard let _ = (scene as? UIWindowScene) else { return } 19 | } 20 | 21 | func sceneDidDisconnect(_ scene: UIScene) { 22 | // Called as the scene is being released by the system. 23 | // This occurs shortly after the scene enters the background, or when its session is discarded. 24 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 25 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 26 | } 27 | 28 | func sceneDidBecomeActive(_ scene: UIScene) { 29 | // Called when the scene has moved from an inactive state to an active state. 30 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 31 | } 32 | 33 | func sceneWillResignActive(_ scene: UIScene) { 34 | // Called when the scene will move from an active state to an inactive state. 35 | // This may occur due to temporary interruptions (ex. an incoming phone call). 36 | } 37 | 38 | func sceneWillEnterForeground(_ scene: UIScene) { 39 | // Called as the scene transitions from the background to the foreground. 40 | // Use this method to undo the changes made on entering the background. 41 | } 42 | 43 | func sceneDidEnterBackground(_ scene: UIScene) { 44 | // Called as the scene transitions from the foreground to the background. 45 | // Use this method to save data, release shared resources, and store enough scene-specific state information 46 | // to restore the scene back to its current state. 47 | } 48 | 49 | func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { 50 | if let url = URLContexts.first?.url { 51 | let _ = ParticleAuthService.handleUrl(url) 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/ParticleAuthDemo_Scene/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ParticleAuthDemo_Scene 4 | // 5 | // Created by link on 2022/11/3. 6 | // 7 | 8 | import UIKit 9 | import RxSwift 10 | import ParticleAuthService 11 | 12 | class ViewController: UIViewController { 13 | 14 | let bag = DisposeBag() 15 | 16 | @IBOutlet weak var LoginButton: UIButton! 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | // Do any additional setup after loading the view. 21 | } 22 | 23 | @IBAction func LoginClick(_ sender: UIButton) { 24 | ParticleAuthService.login(type: .email).subscribe { [weak self] result in 25 | guard let self = self else { return } 26 | switch result { 27 | case .failure(let error): 28 | print(error) 29 | case .success(let userInfo): 30 | print(userInfo) 31 | } 32 | 33 | }.disposed(by: bag) 34 | } 35 | 36 | 37 | } 38 | 39 | 40 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'ParticleAuthDemo_Scene' do 5 | use_frameworks! 6 | pod 'ParticleAuthService', '1.4.5' 7 | pod 'ParticleNetworkBase', '1.4.5' 8 | 9 | # from 1.14.0 you need add this line. 10 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 11 | end 12 | 13 | 14 | post_install do |installer| 15 | installer.pods_project.targets.each do |target| 16 | target.build_configurations.each do |config| 17 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 18 | end 19 | end 20 | 21 | installer.pods_project.targets.each do |target| 22 | target.build_configurations.each do |config| 23 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "14.0" 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /ParticleAuthDemo_Scene_deprecated/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (5.9.1) 3 | - Base58.swift (1.0.2): 4 | - BigInt 5 | - BigInt (5.2.0) 6 | - CryptoSwift (1.8.2) 7 | - ParticleAuthService (1.4.5): 8 | - ParticleNetworkBase 9 | - ParticleNetworkBase (1.4.5): 10 | - Alamofire (~> 5.9.0) 11 | - Base58.swift 12 | - BigInt (~> 5.2.0) 13 | - CryptoSwift (~> 1.8.1) 14 | - RxAlamofire (~> 6.1.1) 15 | - RxCocoa (= 6.6.0) 16 | - RxSwift (= 6.6.0) 17 | - SwiftyJSON (~> 5.0.1) 18 | - SwiftyUserDefaults (~> 5.3.0) 19 | - RxAlamofire (6.1.1): 20 | - RxAlamofire/Core (= 6.1.1) 21 | - RxAlamofire/Core (6.1.1): 22 | - Alamofire (~> 5.4) 23 | - RxSwift (~> 6.0) 24 | - RxCocoa (6.6.0): 25 | - RxRelay (= 6.6.0) 26 | - RxSwift (= 6.6.0) 27 | - RxRelay (6.6.0): 28 | - RxSwift (= 6.6.0) 29 | - RxSwift (6.6.0) 30 | - SwiftyJSON (5.0.2) 31 | - SwiftyUserDefaults (5.3.0) 32 | 33 | DEPENDENCIES: 34 | - ParticleAuthService (= 1.4.5) 35 | - ParticleNetworkBase (= 1.4.5) 36 | - SwiftyUserDefaults (from `https://github.com/SunZhiC/SwiftyUserDefaults.git`, branch `master`) 37 | 38 | SPEC REPOS: 39 | https://github.com/CocoaPods/Specs.git: 40 | - Alamofire 41 | - Base58.swift 42 | - BigInt 43 | - CryptoSwift 44 | - ParticleAuthService 45 | - ParticleNetworkBase 46 | - RxAlamofire 47 | - RxCocoa 48 | - RxRelay 49 | - RxSwift 50 | - SwiftyJSON 51 | 52 | EXTERNAL SOURCES: 53 | SwiftyUserDefaults: 54 | :branch: master 55 | :git: https://github.com/SunZhiC/SwiftyUserDefaults.git 56 | 57 | CHECKOUT OPTIONS: 58 | SwiftyUserDefaults: 59 | :commit: 4b59143af80ebdc7e9811de521afcc33084c3e4e 60 | :git: https://github.com/SunZhiC/SwiftyUserDefaults.git 61 | 62 | SPEC CHECKSUMS: 63 | Alamofire: f36a35757af4587d8e4f4bfa223ad10be2422b8c 64 | Base58.swift: e0e16655f9db843b8cd367593ed6f7d90d136b7f 65 | BigInt: f668a80089607f521586bbe29513d708491ef2f7 66 | CryptoSwift: c63a805d8bb5e5538e88af4e44bb537776af11ea 67 | ParticleAuthService: e5ad4a05d1b78d91e535865bab8c987b737ea82c 68 | ParticleNetworkBase: 7b427b1707165203039826cd8bb79b12b7f62c37 69 | RxAlamofire: beb75a1c452d0de225651db4903f5d29d034a620 70 | RxCocoa: 44a80de90e25b739b5aeaae3c8c371a32e3343cc 71 | RxRelay: 45eaa5db8ee4fb50e5ebd57deec0159e97fa51e6 72 | RxSwift: a4b44f7d24599f674deebd1818eab82e58410632 73 | SwiftyJSON: f5b1bf1cd8dd53cd25887ac0eabcfd92301c6a5a 74 | SwiftyUserDefaults: dd5dce66fb01565a82c3618b835f0546987eb683 75 | 76 | PODFILE CHECKSUM: 1234ed2a380d9b1fb8d961ef54951e5a01d73bff 77 | 78 | COCOAPODS: 1.15.2 79 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ParticleAuthDemo 4 | // 5 | // Created by link on 2022/11/3. 6 | // 7 | 8 | import UIKit 9 | import ParticleAuthService 10 | import ParticleNetworkBase 11 | 12 | @main 13 | class AppDelegate: UIResponder, UIApplicationDelegate { 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | 19 | // Initialize Particle Network 20 | ParticleNetwork.initialize(config: .init(chainInfo: .ethereum, devEnv: .debug)) 21 | 22 | return true 23 | } 24 | 25 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { 26 | return ParticleAuthService.handleUrl(url) 27 | } 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/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 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PROJECT_UUID 6 | YOUR_PROJECT_UUID 7 | PROJECT_CLIENT_KEY 8 | YOUR_PROJECT_CLIENT_KEY 9 | PROJECT_APP_UUID 10 | YOUR_PROJECT_APP_UUID 11 | 12 | 13 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/ParticleAuthDemo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ParticleAuthDemo 4 | // 5 | // Created by link on 2022/11/3. 6 | // 7 | 8 | import UIKit 9 | import RxSwift 10 | import ParticleAuthService 11 | 12 | class ViewController: UIViewController { 13 | 14 | let bag = DisposeBag() 15 | 16 | @IBOutlet weak var LoginButton: UIButton! 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | // Do any additional setup after loading the view. 21 | } 22 | 23 | @IBAction func LoginClick(_ sender: UIButton) { 24 | ParticleAuthService.login(type: .email).subscribe { [weak self] result in 25 | guard let self = self else { return } 26 | switch result { 27 | case .failure(let error): 28 | print(error) 29 | case .success(let userInfo): 30 | print(userInfo) 31 | } 32 | 33 | }.disposed(by: bag) 34 | } 35 | 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'ParticleAuthDemo' do 5 | use_frameworks! 6 | pod 'ParticleAuthService', '1.4.5' 7 | pod 'ParticleNetworkBase', '1.4.5' 8 | 9 | # from 1.14.0 you need add this line. 10 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 11 | 12 | end 13 | 14 | 15 | post_install do |installer| 16 | installer.pods_project.targets.each do |target| 17 | target.build_configurations.each do |config| 18 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 19 | end 20 | end 21 | 22 | installer.pods_project.targets.each do |target| 23 | target.build_configurations.each do |config| 24 | config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "14.0" 25 | end 26 | end 27 | 28 | end 29 | -------------------------------------------------------------------------------- /ParticleAuthDemo_deprecated/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (5.9.1) 3 | - Base58.swift (1.0.2): 4 | - BigInt 5 | - BigInt (5.2.0) 6 | - CryptoSwift (1.8.2) 7 | - ParticleAuthService (1.4.5): 8 | - ParticleNetworkBase 9 | - ParticleNetworkBase (1.4.5): 10 | - Alamofire (~> 5.9.0) 11 | - Base58.swift 12 | - BigInt (~> 5.2.0) 13 | - CryptoSwift (~> 1.8.1) 14 | - RxAlamofire (~> 6.1.1) 15 | - RxCocoa (= 6.6.0) 16 | - RxSwift (= 6.6.0) 17 | - SwiftyJSON (~> 5.0.1) 18 | - SwiftyUserDefaults (~> 5.3.0) 19 | - RxAlamofire (6.1.1): 20 | - RxAlamofire/Core (= 6.1.1) 21 | - RxAlamofire/Core (6.1.1): 22 | - Alamofire (~> 5.4) 23 | - RxSwift (~> 6.0) 24 | - RxCocoa (6.6.0): 25 | - RxRelay (= 6.6.0) 26 | - RxSwift (= 6.6.0) 27 | - RxRelay (6.6.0): 28 | - RxSwift (= 6.6.0) 29 | - RxSwift (6.6.0) 30 | - SwiftyJSON (5.0.2) 31 | - SwiftyUserDefaults (5.3.0) 32 | 33 | DEPENDENCIES: 34 | - ParticleAuthService (= 1.4.5) 35 | - ParticleNetworkBase (= 1.4.5) 36 | - SwiftyUserDefaults (from `https://github.com/SunZhiC/SwiftyUserDefaults.git`, branch `master`) 37 | 38 | SPEC REPOS: 39 | https://github.com/CocoaPods/Specs.git: 40 | - Alamofire 41 | - Base58.swift 42 | - BigInt 43 | - CryptoSwift 44 | - ParticleAuthService 45 | - ParticleNetworkBase 46 | - RxAlamofire 47 | - RxCocoa 48 | - RxRelay 49 | - RxSwift 50 | - SwiftyJSON 51 | 52 | EXTERNAL SOURCES: 53 | SwiftyUserDefaults: 54 | :branch: master 55 | :git: https://github.com/SunZhiC/SwiftyUserDefaults.git 56 | 57 | CHECKOUT OPTIONS: 58 | SwiftyUserDefaults: 59 | :commit: 4b59143af80ebdc7e9811de521afcc33084c3e4e 60 | :git: https://github.com/SunZhiC/SwiftyUserDefaults.git 61 | 62 | SPEC CHECKSUMS: 63 | Alamofire: f36a35757af4587d8e4f4bfa223ad10be2422b8c 64 | Base58.swift: e0e16655f9db843b8cd367593ed6f7d90d136b7f 65 | BigInt: f668a80089607f521586bbe29513d708491ef2f7 66 | CryptoSwift: c63a805d8bb5e5538e88af4e44bb537776af11ea 67 | ParticleAuthService: e5ad4a05d1b78d91e535865bab8c987b737ea82c 68 | ParticleNetworkBase: 7b427b1707165203039826cd8bb79b12b7f62c37 69 | RxAlamofire: beb75a1c452d0de225651db4903f5d29d034a620 70 | RxCocoa: 44a80de90e25b739b5aeaae3c8c371a32e3343cc 71 | RxRelay: 45eaa5db8ee4fb50e5ebd57deec0159e97fa51e6 72 | RxSwift: a4b44f7d24599f674deebd1818eab82e58410632 73 | SwiftyJSON: f5b1bf1cd8dd53cd25887ac0eabcfd92301c6a5a 74 | SwiftyUserDefaults: dd5dce66fb01565a82c3618b835f0546987eb683 75 | 76 | PODFILE CHECKSUM: 8445902bc3df4bbacfb5e65052286601b6a5e2dd 77 | 78 | COCOAPODS: 1.15.2 79 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ParticleWalletConnectDemo 4 | // 5 | // Created by link on 2022/11/7. 6 | // 7 | 8 | import ParticleAuthService 9 | import ParticleNetworkBase 10 | import ParticleWalletConnect 11 | import UIKit 12 | 13 | @main 14 | class AppDelegate: UIResponder, UIApplicationDelegate { 15 | var window: UIWindow? 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 18 | // initialize Particle network 19 | ParticleNetwork.initialize(config: .init(chainInfo: .ethereum, devEnv: .debug)) 20 | 21 | // initialize Particle wallet connect 22 | // pass your wallet information 23 | ParticleWalletConnect.initialize( 24 | .init(name: "Particle Wallet Connect Demo", 25 | icon: URL(string: "https://connect.particle.network/icons/512.png")!, 26 | url: URL(string: "https://github.com/Particle-Network/particle-ios")!, 27 | description: "This is demo for Particle Wallet Connect SDK", redirectUniversalLink: nil)) 28 | 29 | return true 30 | } 31 | 32 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 33 | return ParticleAuthService.handleUrl(url) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/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 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleURLTypes 6 | 7 | 8 | CFBundleTypeRole 9 | Editor 10 | CFBundleURLSchemes 11 | 12 | pn2db718b1-5e1e-4184-849f-b4efc606e782 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/ParticleNetwork-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ENV 15 | production 16 | PROJECT_UUID 17 | 772f7499-1d2e-40f4-8e2c-7b6dd47db9de 18 | PROJECT_CLIENT_KEY 19 | ctWeIc2UBA6sYTKJknT9cu9LBikF00fbk1vmQjsV 20 | PROJECT_APP_UUID 21 | 2db718b1-5e1e-4184-849f-b4efc606e782 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/ScanViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScanViewController.swift 3 | // ParticleWalletConnectDemo 4 | // 5 | // Created by link on 2022/11/7. 6 | // 7 | 8 | import UIKit 9 | 10 | class ScanViewController: UIViewController { 11 | var scanHandler: ((String) -> Void)? 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | setUI() 16 | } 17 | 18 | private func setUI() { 19 | QRCodeTool.shareInstance.scanQRCode(inView: view) { [weak self] results in 20 | guard let self = self else { return } 21 | if results.count > 0 { 22 | let str = results[0] 23 | self.resolveString(str) 24 | } 25 | } 26 | } 27 | 28 | private func resolveString(_ str: String) { 29 | if let scanHandler = scanHandler { 30 | if checkWalletConnectAddress(str) { 31 | QRCodeTool.shareInstance.stopScan() 32 | navigationController?.popViewController(animated: true) 33 | scanHandler(str) 34 | } 35 | } 36 | } 37 | 38 | func checkWalletConnectAddress(_ string: String) -> Bool { 39 | // should detect both v1 and v2 40 | // wc:DDCBBAA8-B1F1-4B98-8F74-84939E0B1533@1?bridge=https%3A%2F%2Fbridge%2Ewalletconnect%2Eorg%2F&key=3da9dbb33b560beeb1750203a8d0e3487b4fe3fdd7b7953d79fbccadae8aab48 41 | // wc:ca9ecbc30ab3b584ab1cd570f494bb344a2801c4543523c47c28f1ee13d8d9f9@2?relay-protocol=irn&symKey=5c09d4849fd38d982e2ed4da344921abdf408853b9840f02dccfe16492499d9b 42 | if string.prefix(3) == "wc:" { 43 | if string.contains("@1") { 44 | if let urlCom = URLComponents(string: string) { 45 | var hasBridge = false 46 | var hasKey = false 47 | if let queryItems = urlCom.queryItems { 48 | for item in queryItems { 49 | if item.name == "bridge", item.value != nil { 50 | hasBridge = true 51 | } 52 | if item.name == "key" { 53 | hasKey = true 54 | } 55 | } 56 | if hasBridge, hasKey { 57 | return true 58 | } 59 | } 60 | } 61 | } else if string.contains("@2") { 62 | if let urlCom = URLComponents(string: string) { 63 | var hasBridge = false 64 | var hasKey = false 65 | if let queryItems = urlCom.queryItems { 66 | for item in queryItems { 67 | if item.name == "relay-protocol", item.value != nil { 68 | hasBridge = true 69 | } 70 | if item.name == "symKey", item.value != nil { 71 | hasKey = true 72 | } 73 | } 74 | if hasBridge, hasKey { 75 | return true 76 | } 77 | } 78 | } 79 | } else { 80 | return false 81 | } 82 | } 83 | return false 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/ParticleWalletConnectDemo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ParticleWalletConnectDemo 4 | // 5 | // Created by link on 2022/11/7. 6 | // 7 | 8 | import ParticleAuthService 9 | import ParticleNetworkBase 10 | import ParticleWalletConnect 11 | import RxSwift 12 | import SDWebImage 13 | import SDWebImageWebPCoder 14 | import UIKit 15 | 16 | class ViewController: UIViewController, ParticleWalletConnectDelegate { 17 | @IBOutlet var tableView: UITableView! 18 | 19 | let bag = DisposeBag() 20 | var dapps: [DappMetaData] = [] 21 | let cellIdentifier = "sessionCell" 22 | 23 | lazy var pwc = ParticleWalletConnect() 24 | 25 | var userInfo: UserInfo? 26 | 27 | override func viewDidLoad() { 28 | super.viewDidLoad() 29 | // tableView.allowsSelection = false 30 | // Set ParticleWalletConnect delegate 31 | pwc.delegate = self 32 | // set SDWebImage to support webp format. 33 | let webpCoder = SDImageWebPCoder.shared 34 | SDImageCodersManager.shared.addCoder(webpCoder) 35 | 36 | tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellIdentifier) 37 | loadData() 38 | } 39 | 40 | @IBAction func loginParticle() { 41 | ParticleAuthService.login(type: .email).subscribe { [weak self] result in 42 | guard let self = self else { return } 43 | switch result { 44 | case .failure(let error): 45 | print(error) 46 | case .success(let userInfo): 47 | print(userInfo) 48 | self.userInfo = userInfo 49 | } 50 | }.disposed(by: bag) 51 | } 52 | 53 | @IBAction func scanButtonClick() { 54 | let vc = ScanViewController() 55 | vc.scanHandler = { [weak self] code in 56 | guard let self = self else { return } 57 | Task { 58 | do { 59 | try await self.pwc.connect(code: code) 60 | } catch { 61 | print(error) 62 | } 63 | } 64 | } 65 | navigationController?.pushViewController(vc, animated: true) 66 | } 67 | 68 | func loadData() { 69 | guard let publicAddress = userInfo?.wallets.first(where: { 70 | $0.chainName == "evm_chain" 71 | })?.publicAddress else { 72 | print("no evm address") 73 | return 74 | } 75 | dapps = pwc.getAllDapps(publicAddress: publicAddress) 76 | tableView.reloadData() 77 | } 78 | } 79 | 80 | extension ViewController: UITableViewDelegate, UITableViewDataSource { 81 | func numberOfSections(in tableView: UITableView) -> Int { 82 | return 1 83 | } 84 | 85 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 86 | return dapps.count 87 | } 88 | 89 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 90 | let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) 91 | cell.selectionStyle = .none 92 | let dapp = dapps[indexPath.row] 93 | let name = dapp.name 94 | let icon = dapp.icons.first 95 | cell.textLabel?.text = name 96 | if let icon = icon, let iconUrl = URL(string: icon) { 97 | cell.imageView?.sd_setImage(with: iconUrl) 98 | } 99 | return cell 100 | } 101 | 102 | func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) 103 | -> UISwipeActionsConfiguration? 104 | { 105 | let dapp = dapps[indexPath.row] 106 | let deleteAction = UIContextualAction(style: .destructive, title: "Disconnect", handler: { _, _, 107 | _ in 108 | 109 | Task { 110 | do { 111 | try await self.pwc.disconnect(topic: dapp.topic) 112 | } catch { 113 | print(error) 114 | } 115 | } 116 | 117 | self.loadData() 118 | }) 119 | 120 | let configuration = UISwipeActionsConfiguration(actions: [deleteAction]) 121 | return configuration 122 | } 123 | } 124 | 125 | extension ViewController { 126 | func request(topic: String, method: String, params: [Encodable], completion: @escaping (WCResult) -> Void) { 127 | // call ParticleSDK to handle request from dapp 128 | // also you can interrupt method by yourself 129 | 130 | } 131 | 132 | func shouldConnectDapp(_ dappMetaData: DappMetaData, completion: @escaping (String, Int) -> Void) { 133 | DispatchQueue.main.async { 134 | let chainId = ParticleNetwork.getChainInfo().chainId 135 | let publicAddress = ParticleAuthService.getAddress() 136 | 137 | // control if connect 138 | // in demo, present a alert 139 | let message = dappMetaData.name + "\n" + dappMetaData.url 140 | let vc = UIAlertController(title: "Connect dapp", message: message, preferredStyle: .alert) 141 | let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) 142 | let connectAction = UIAlertAction(title: "Connect", style: .default) { _ in 143 | completion(publicAddress, chainId) 144 | self.loadData() 145 | } 146 | 147 | vc.addAction(cancelAction) 148 | vc.addAction(connectAction) 149 | 150 | self.present(vc, animated: true) 151 | } 152 | } 153 | 154 | func didConnectDapp(_ topic: String) { 155 | print("Did connect dapp \(topic)") 156 | } 157 | 158 | func didDisconnectDapp(_ topic: String) { 159 | print("Did disconnect dapp \(topic)") 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /ParticleWalletConnectDemo/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'ParticleWalletConnectDemo' do 5 | use_frameworks! 6 | pod 'ParticleNetworkBase', '2.0.2' 7 | pod 'ParticleWalletConnect', '2.0.2' 8 | pod 'ParticleAuthService', '2.0.2' 9 | 10 | # from 1.14.0 you need add this line. 11 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 12 | # from 1.14.0, if you need ParticleWalletConnect, you should add this line. 13 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 14 | 15 | pod 'SDWebImage' 16 | pod 'SDWebImageWebPCoder' 17 | end 18 | 19 | post_install do |installer| 20 | installer.pods_project.targets.each do |target| 21 | target.build_configurations.each do |config| 22 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 23 | end 24 | end 25 | # This is necessary for Xcode 14, because it signs resource bundles by default 26 | # when building for devices. 27 | installer.target_installation_results.pod_target_installation_results 28 | .each do |pod_name, target_installation_result| 29 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 30 | resource_bundle_target.build_configurations.each do |config| 31 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 32 | end 33 | end 34 | end 35 | 36 | installer.generated_projects.each do |project| 37 | project.targets.each do |target| 38 | target.build_configurations.each do |config| 39 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0' 40 | end 41 | end 42 | end 43 | 44 | end 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Particle iOS 2 | [![Swift](https://img.shields.io/badge/Swift-5-orange)](https://img.shields.io/badge/Swift-5-orange) 3 | [![Platforms](https://img.shields.io/badge/Platforms-iOS-yellowgreen)](https://img.shields.io/badge/Platforms-iOS-Green) 4 | [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/ParticleWalletGUI.svg)](https://img.shields.io/cocoapods/v/Alamofire.svg) 5 | [![License](https://img.shields.io/github/license/Particle-Network/particle-ios)](https://github.com/Particle-Network/particle-ios/blob/main/LICENSE.txt) 6 | 7 | 8 | This repository contains [Auth Service](https://developers.particle.network/api-reference/auth/mobile-sdks/ios) and [Wallet Service](https://developers.particle.network/api-reference/wallet/mobile/ios) sample source. It supports Solana and all EVM-compatiable chains now, more chains and more features coming soon! Learn more visit [Particle Network](https://developers.particle.network/). 9 | 10 | ![image](/images/connectkit-mobile.svg) 11 | 12 | 13 | #### Note 14 | Please note that the AuthCore SDKs only support `ios-arm64` (iOS devices). We currently do not support `ios-x86_64-simulator` (Intel chip simulators) and `ios-arm64-simulator` (M-series chip simulators). 15 | 16 | 17 | # Prerequisites 18 | Install the following: 19 | 20 | iOS 15.6 or higher 21 | 22 | 23 | | iOS version | 15.6 or higher | 24 | | ------------------------------- | -------------- | 25 | | ParticleConnectKit | 2.0.8 | 26 | | ParticleNetworkBase | 2.0.9 | 27 | | ParticleWalletAPI | 2.0.9 | 28 | | ParticleWalletGUI | 2.0.9 | 29 | | ParticleWalletConnect | 2.0.9 | 30 | | ParticleAA | 2.0.9 | 31 | | ParticleAuthCore | 2.0.8 | 32 | | ParticleMPCCore | 2.0.8 | 33 | | AuthCoreAdapter | 2.0.8 | 34 | | Thresh | 2.0.8 | 35 | | ParticleAuthService(deprecated) | --- | 36 | 37 | ## 🎯 Support Apple Privacy Manifests 38 | From version 1.4.0, all SDKs have been adapted to Apple's privacy requirements. 39 | 40 | The following third-party SDKs require the use of specific versions. 41 | ```ruby 42 | pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master' 43 | # if you need ParticleWalletConnect, you should add this line. 44 | pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle' 45 | # if you need ParticleAuthCore or ParticleWalletGUI, you should add this line. 46 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 47 | ``` 48 | 49 | ### Migrating to WalletConnect v2 50 | Starting from version 0.14.0, WalletConnectV2 is supported. 51 | 52 | ### 🔌 Podfile request 53 | From 0.9.12, you should add more in Podfile 54 | If you use PartcleWalletGUI, you need add this one. 55 | ```ruby 56 | pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main' 57 | ``` 58 | 59 | ### 🧂 Update Podfile 60 | From 0.8.6, we start to build SDK with XCFramework, that request copy the following text into Podfile. 61 | 62 | ```ruby 63 | post_install do |installer| 64 | installer.pods_project.targets.each do |target| 65 | target.build_configurations.each do |config| 66 | config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' 67 | end 68 | end 69 | end 70 | ``` 71 | 72 | 73 | # 🔧 Getting Started 74 | 75 | * Clone the repo. open Demo folder. 76 | * Replace ParticelNetwork.info with your project info in the [Dashboard](https://dashboard.particle.network/#/login). 77 | ```xml 78 | 79 | 80 | 81 | 82 | PROJECT_UUID 83 | YOUR_PROJECT_UUID 84 | PROJECT_CLIENT_KEY 85 | YOUR_PROJECT_CLIENT_KEY 86 | PROJECT_APP_UUID 87 | YOUR_PROJECT_APP_UUID 88 | 89 | 90 | 91 | ``` 92 | * Config your app scheme url, select your app target, in the info section, click add URL Type, past your scheme in URL Schemes. 93 | your scheme url should be "pn" + your project app id. 94 | 95 | for example, if you project app id is "63bfa427-cf5f-4742-9ff1-e8f5a1b9826f", you scheme url is "pn63bfa427-cf5f-4742-9ff1-e8f5a1b9826f". 96 | ![image](https://user-images.githubusercontent.com/18244874/168455432-f25796b0-3a6a-4fa7-8ec6-adc5f8a0c46e.png) 97 | 98 | * Add Privacy - Camera Usage Description to your info.plist file 99 | 100 | ## 💿 Build 101 | ``` 102 | pod install --repo-update 103 | ``` 104 | 105 | ## 🚴‍♂️ Other Demo 106 | 107 | - **GuideSeries:** follow [iOS Guide](https://developers.particle.network/guides/wallet-as-a-service/waas/mobile-quickstart) step to step, add ParticleSDK to your project. 108 | 109 | - **ParticleWalletConnectDemo** show how to integrate with ParticleWalletConnect, it use ParticleAuthService to handle request from dapp. 110 | - **ParticleAuthDemo_deprecated** show how to integrate ParticleAuthService with a few code. 111 | 112 | - **ParticleAuthDemo_Scene_deprecated** start from SceneDelegate.swift, show how to integrate ParticleAuthService when app start from SceneDelagate.swift with a few code. 113 | 114 | 115 | ## 🔬 Features 116 | 117 | 1. Login with email, phone, facebook, google, apple etc. 118 | 2. Logout. 119 | 3. Open Wallet. 120 | 4. Change Chain Id. 121 | 5. Check our official dev docs: https://developers.particle.network/ 122 | 123 | ## 📄 Docs 124 | 1. https://developers.particle.network/api-reference/connect/mobile/ios 125 | 2. https://developers.particle.network/api-reference/auth/mobile-sdks/ios 126 | 3. https://developers.particle.network/api-reference/wallet/mobile/ios 127 | 4. https://developers.particle.network/api-reference/aa/sdks/mobile/ios 128 | 129 | ## 💼 Give Feedback 130 | Please report bugs or issues to [particle-ios/issues](https://github.com/Particle-Network/particle-ios/issues) 131 | 132 | You can also join our [Discord](https://discord.gg/2y44qr6CR2). 133 | 134 | 135 | 136 | 137 | 138 | --------------------------------------------------------------------------------