Skip to content

Commit 95e1ea4

Browse files
Merge pull request #24 from Web3Auth/encapsulate_torusnetwork
refactor: use latest version of torusutils and update features
2 parents 44e222e + f58e2cd commit 95e1ea4

19 files changed

+296
-154
lines changed

Package.resolved

Lines changed: 18 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ let package = Package(
1515
targets: ["SingleFactorAuth"])
1616
],
1717
dependencies: [
18-
.package(url: "https://github.com/torusresearch/fetch-node-details-swift.git", from: "6.0.3"),
19-
.package(url: "https://github.com/torusresearch/torus-utils-swift.git", from: "9.0.1"),
18+
.package(url: "https://github.com/torusresearch/torus-utils-swift.git", from: "10.0.0"),
2019
.package(url: "https://github.com/vapor/jwt-kit.git", from: "4.0.0"),
21-
.package(url: "https://github.com/Web3Auth/session-manager-swift.git", from: "5.0.0"),
20+
.package(url: "https://github.com/Web3Auth/session-manager-swift.git", from: "6.0.0"),
21+
.package(url: "https://github.com/auth0/JWTDecode.swift.git", from: "3.2.0")
2222
],
2323
targets: [
2424
.target(
2525
name: "SingleFactorAuth",
2626
dependencies: [
27-
.product(name: "FetchNodeDetails", package: "fetch-node-details-swift"),
2827
.product(name: "TorusUtils", package: "torus-utils-swift"),
29-
.product(name: "SessionManager", package: "session-manager-swift")
28+
.product(name: "SessionManager", package: "session-manager-swift"),
29+
.product(name: "JWTDecode", package: "JWTDecode.swift")
3030
]),
3131
.testTarget(
3232
name: "SingleFactorAuthTests",

README.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,21 @@ You can install the SingleFactorAuth Swift using Swift Package Manager.
2121
...
2222
dependencies: [
2323
...
24-
.package(url: "https://github.com/Web3Auth/single-factor-auth-swift/", from: "8.0.0")
24+
.package(url: "https://github.com/Web3Auth/single-factor-auth-swift/", from: "9.0.0")
2525
],
2626
...
2727
```
2828

2929

3030
## Getting Started
31-
Initialize the `SingleFactAuth` class by passing `SFAParams`
31+
Initialize the `SingleFactAuth` class by passing `Web3AuthOptions`
3232

3333
```swift
3434
let singleFactorAuthArgs = SingleFactorAuthArgs(
35-
web3AuthClientId: "<Your Client Id>",
35+
clientId: "<Your Client Id>",
3636
network: Web3AuthNetwork.SAPPHIRE_MAINNET
3737
)
38-
let singleFactoreAuth = SingleFactorAuth(params: SFAParams)
38+
let singleFactoreAuth = SingleFactorAuth(params: Web3AuthOptions)
3939
```
4040

4141
Use the `getKey` function to login the user and get the privateKey and public address for the given user.
@@ -51,14 +51,6 @@ let loginParams = LoginParams(
5151
let torusKey = try await singleFactoreAuth.connect(loginParams: loginParams)
5252
```
5353

54-
We also have included Session Management in this SDK so call initialize function to get TorusKey value without relogging in the user if a user has an active session it will return the TorusKey struct otherwise it will return nil.
55-
56-
```swift
57-
if let savedKey = try await singleFactoreAuth.initialize() {
58-
print(savedKey.getPrivateKey())
59-
print(savedKey.getPublicAddress())
60-
}
61-
```
6254

6355
## Requirements
6456
- iOS 14 or above is required

SingleFactorAuth.podspec

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |spec|
22
spec.name = "SingleFactorAuth"
3-
spec.version = "8.0.0"
3+
spec.version = "9.0.0"
44
spec.ios.deployment_target = "14.0"
55
spec.summary = "Enable one key flow for Web3Auth"
66
spec.homepage = "https://github.com/Web3Auth/single-factor-auth-swift"
@@ -10,8 +10,7 @@ Pod::Spec.new do |spec|
1010
spec.module_name = "SingleFactorAuth"
1111
spec.source = { :git => "https://github.com/web3Auth/single-factor-auth-swift", :tag => spec.version }
1212
spec.source_files = "Sources/SingleFactorAuth/*.{swift,json}","Sources/SingleFactorAuth/**/*.{swift,json}"
13-
spec.dependency 'Torus-fetchNodeDetails', '~> 6.0.3'
14-
spec.dependency 'curvelib.swift', '~> 1.0.1'
15-
spec.dependency 'Torus-utils', '~> 9.0.1'
16-
spec.dependency 'TorusSessionManager', '~> 5.0.0'
13+
spec.dependency 'Torus-utils', '~> 10.0.0'
14+
spec.dependency 'TorusSessionManager', '~> 6.0.0'
15+
spec.dependency 'JWTDecode', '~> 3.2'
1716
end
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import Foundation
2+
3+
public enum SFAError: Error, Equatable {
4+
case MFAAlreadyEnabled
5+
}
6+
7+
extension SFAError: LocalizedError {
8+
public var errorDescription: String? {
9+
switch self {
10+
case .MFAAlreadyEnabled:
11+
return "User has already enabled MFA"
12+
}
13+
}
14+
}

Sources/SingleFactorAuth/LoginParams.swift

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,16 @@ public class LoginParams {
33
public let verifierId: String
44
public let idToken: String
55
public let subVerifierInfoArray: [TorusSubVerifierInfo]?
6+
public let serverTimeOffset: Int?
7+
public let fallbackUserInfo: UserInfo?
68

7-
public init(verifier: String, verifierId: String, idToken: String) {
8-
self.verifier = verifier
9-
self.verifierId = verifierId
10-
self.idToken = idToken
11-
subVerifierInfoArray = nil
12-
}
13-
14-
public init(verifier: String, verifierId: String, idToken: String, subVerifierInfoArray: [TorusSubVerifierInfo]) {
9+
public init(verifier: String, verifierId: String, idToken: String, subVerifierInfoArray: [TorusSubVerifierInfo]? = nil, serverTimeOffset: Int? = nil, fallbackUserInfo: UserInfo? = nil) {
1510
self.verifier = verifier
1611
self.verifierId = verifierId
1712
self.idToken = idToken
1813
self.subVerifierInfoArray = subVerifierInfoArray
14+
self.serverTimeOffset = serverTimeOffset
15+
self.fallbackUserInfo = fallbackUserInfo
1916
}
2017
}
2118

Sources/SingleFactorAuth/SFAKey.swift

Lines changed: 0 additions & 24 deletions
This file was deleted.

Sources/SingleFactorAuth/SFAParams.swift

Lines changed: 0 additions & 37 deletions
This file was deleted.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import BigInt
2+
import Foundation
3+
import TorusUtils
4+
5+
public class SessionData: Codable {
6+
let privateKey: String
7+
let publicAddress: String
8+
let signatures: TorusKey.SessionData?
9+
let userInfo: UserInfo?
10+
11+
init(privateKey: String, publicAddress: String, signatures: TorusKey.SessionData? = nil, userInfo: UserInfo? = nil) {
12+
self.privateKey = privateKey
13+
self.publicAddress = publicAddress
14+
self.signatures = signatures
15+
self.userInfo = userInfo
16+
}
17+
18+
public func getPrivateKey() -> String {
19+
return privateKey
20+
}
21+
22+
public func getPublicAddress() -> String {
23+
return publicAddress
24+
}
25+
26+
public func getUserInfo() -> UserInfo? {
27+
return userInfo
28+
}
29+
30+
public func getSignatures() -> TorusKey.SessionData? {
31+
return self.signatures
32+
}
33+
}

0 commit comments

Comments
 (0)