├── .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 | [](https://img.shields.io/badge/Swift-5-orange)
3 | [](https://img.shields.io/badge/Platforms-iOS-Green)
4 | [](https://img.shields.io/cocoapods/v/Alamofire.svg)
5 | [](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 | 
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 | 
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 |
--------------------------------------------------------------------------------