Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Sources/TorusUtils/Interfaces/Toruskey.swift
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,16 @@ public struct TorusKey {
public let metadata: Metadata?
public let nodesData: NodesData?
}


// allow response
public struct AllowSuccess : Codable {
public let success: Bool
}

public struct AllowRejected : Codable {
public let code: Int32
public let error: String
public let success: Bool
}

13 changes: 9 additions & 4 deletions Sources/TorusUtils/TorusUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ open class TorusUtils: AbstractTorusUtils {
signerHost: String = "https://signer.tor.us/api/sign",
allowHost: String = "https://signer.tor.us/api/allow",
network: TorusNetwork = TorusNetwork.legacy(.MAINNET),
clientId: String = "",
clientId: String,
legacyMetadataHost: String = "https://metadata.tor.us"
) {
self.urlSession = urlSession
Expand Down Expand Up @@ -69,11 +69,16 @@ open class TorusUtils: AbstractTorusUtils {
allowHostRequest.addValue(verifier, forHTTPHeaderField: "verifier")
allowHostRequest.addValue(verifierParams.verifier_id, forHTTPHeaderField: "verifier_id")
allowHostRequest.addValue(verifierParams.verifier_id, forHTTPHeaderField: "verifierId")
allowHostRequest.addValue(clientId, forHTTPHeaderField: "clientId")
allowHostRequest.addValue(clientId, forHTTPHeaderField: "clientid")
allowHostRequest.addValue(network.name, forHTTPHeaderField: "network")
allowHostRequest.addValue("true", forHTTPHeaderField: "enable_gating")
allowHostRequest.addValue("true", forHTTPHeaderField: "enablegating")
do {
_ = try await session.data(for: allowHostRequest)
let result = try await session.data(for: allowHostRequest)
let responseData = try JSONDecoder().decode(AllowSuccess.self, from: result.0)
if (responseData.success == false ) {
let errorData = try JSONDecoder().decode(AllowRejected.self, from: result.0)
throw "code: \(errorData.code), error: \(errorData.error)"
}
} catch {
os_log("retrieveShares: signer allow: %@", log: getTorusLogger(log: TorusUtilsLogger.core, type: .error), type: .error, error.localizedDescription)
throw error
Expand Down
8 changes: 1 addition & 7 deletions Tests/TorusUtilsTests/AquaTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class AquaTest: XCTestCase {

func getFNDAndTUData(verifer: String, veriferID: String, enableOneKey: Bool = false) async throws -> AllNodeDetailsModel {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
tu = TorusUtils(enableOneKey: enableOneKey, signerHost: signerHost, allowHost: allowHost, network: .legacy(.AQUA))
tu = TorusUtils(enableOneKey: enableOneKey, signerHost: signerHost, allowHost: allowHost, network: .legacy(.AQUA), clientId: "YOUR_CLIENT_ID")
return nodeDetails
}

Expand All @@ -42,7 +42,6 @@ class AquaTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, UserType(rawValue: "v1"))
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

func test_should_fetch_user_type_and_public_addresses() async throws {
Expand All @@ -61,7 +60,6 @@ class AquaTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, .v2)
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)

verifier = "tkey-google-aqua"
verifierID = "somev2user@gmail.com"
Expand All @@ -76,7 +74,6 @@ class AquaTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, .v2)
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)

verifierID = "caspertorus@gmail.com"
val = try await tu.getUserTypeAndAddress(endpoints: nodeDetails.getTorusNodeEndpoints(), torusNodePubs: nodeDetails.getTorusNodePub(), verifier: verifier, verifierId: verifierID)
Expand All @@ -89,7 +86,6 @@ class AquaTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, .v2)
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

func test_key_assign() async throws {
Expand Down Expand Up @@ -127,7 +123,6 @@ class AquaTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}

func test_aggregate_login() async throws {
Expand All @@ -153,7 +148,6 @@ class AquaTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}
}

Expand Down
5 changes: 1 addition & 4 deletions Tests/TorusUtilsTests/CyanTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class CyanTest: XCTestCase {

func getFNDAndTUData(verifer: String, veriferID: String, enableOneKey: Bool = false) async throws -> AllNodeDetailsModel {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
tu = TorusUtils(enableOneKey: enableOneKey, signerHost: signerHost, allowHost: allowHost, network: .legacy(.CYAN))
tu = TorusUtils(enableOneKey: enableOneKey, signerHost: signerHost, allowHost: allowHost, network: .legacy(.CYAN), clientId: "YOUR_CLIENT_ID")
return nodeDetails
}

Expand All @@ -42,7 +42,6 @@ class CyanTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, UserType(rawValue: "v1"))
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

func test_get_user_type_and_addresses() async throws {
Expand Down Expand Up @@ -131,7 +130,6 @@ class CyanTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}

func test_aggregate_login() async throws {
Expand All @@ -157,6 +155,5 @@ class CyanTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}
}
2 changes: 1 addition & 1 deletion Tests/TorusUtilsTests/IntegrationTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class IntegrationTests: XCTestCase {

func get_fnd_and_tu_data(verifer: String, veriferID: String, enableOneKey: Bool = false) async throws -> AllNodeDetailsModel {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
tu = TorusUtils(enableOneKey: enableOneKey, network: .legacy(.TESTNET))
tu = TorusUtils(enableOneKey: enableOneKey, network: .legacy(.TESTNET), clientId: "YOUR_CLIENT_ID")
return nodeDetails
}

Expand Down
8 changes: 1 addition & 7 deletions Tests/TorusUtilsTests/MainnetTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class MainnetTests: XCTestCase {

func get_fnd_and_tu_data(verifer: String, veriferID: String, enableOneKey: Bool = false) async throws -> AllNodeDetailsModel {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
tu = TorusUtils(enableOneKey: enableOneKey, network: .legacy(.MAINNET))
tu = TorusUtils(enableOneKey: enableOneKey, network: .legacy(.MAINNET), clientId: "YOUR_CLIENT_ID")
return nodeDetails
}

Expand All @@ -50,7 +50,6 @@ class MainnetTests: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, UserType(rawValue: "v1"))
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

func test_fetch_user_type_and_addresses() async throws {
Expand All @@ -70,7 +69,6 @@ class MainnetTests: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, .v2)
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)

let verifier2: String = "tkey-google"
let verifierID2: String = "somev2user@gmail.com"
Expand All @@ -87,7 +85,6 @@ class MainnetTests: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, UserType(rawValue: "v2"))
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)

let verifier3: String = "tkey-google"
let verifierID3: String = "caspertorus@gmail.com"
Expand All @@ -104,7 +101,6 @@ class MainnetTests: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, .v2)
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

func test_key_assign() async throws {
Expand Down Expand Up @@ -148,7 +144,6 @@ class MainnetTests: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}

func test_aggregate_login() async throws {
Expand Down Expand Up @@ -176,6 +171,5 @@ class MainnetTests: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}
}
37 changes: 29 additions & 8 deletions Tests/TorusUtilsTests/SapphireTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ final class SapphireTest: XCTestCase {

func get_fnd_and_tu_data(verifer: String, veriferID: String, enableOneKey: Bool = false) async throws -> AllNodeDetailsModel {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
torus = TorusUtils(enableOneKey: enableOneKey, network: .sapphire(.SAPPHIRE_DEVNET))
torus = TorusUtils(enableOneKey: enableOneKey, network: .sapphire(.SAPPHIRE_DEVNET), clientId: "YOUR_CLIENT_ID")
return nodeDetails
}

Expand All @@ -55,7 +55,6 @@ final class SapphireTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, BigUInt.zero)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, UserType(rawValue: "v2"))
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 5)
}

func testKeepPublicAddressSame() async throws {
Expand Down Expand Up @@ -125,7 +124,6 @@ final class SapphireTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce?.serialize().hexString, "b7d126751b68ecd09e371a23898e6819dee54708a5ead4f6fe83cdc79c0f1c4a")
XCTAssertEqual(data.metadata?.typeOfUser, .v2)
XCTAssertEqual(data.metadata?.upgraded, false)
XCTAssertNotEqual(data.nodesData?.nodeIndexes.count, 0)
}

func testNewUserLogin() async throws {
Expand Down Expand Up @@ -160,7 +158,6 @@ final class SapphireTest: XCTestCase {
XCTAssertNotEqual(data.sessionData?.sessionAuthKey, "")
XCTAssertNotEqual(data.metadata?.pubNonce?.x, "")
XCTAssertNotEqual(data.metadata?.pubNonce?.y, "")
XCTAssertNotEqual(data.nodesData?.nodeIndexes.count, 0)
}

func testNodeDownAbleToLogin() async throws {
Expand Down Expand Up @@ -191,7 +188,6 @@ final class SapphireTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce?.serialize().hexString, "b7d126751b68ecd09e371a23898e6819dee54708a5ead4f6fe83cdc79c0f1c4a")
XCTAssertEqual(data.metadata?.typeOfUser, .v2)
XCTAssertEqual(data.metadata?.upgraded, false)
XCTAssertNotEqual(data.nodesData?.nodeIndexes.count, 0)
}

func testPubAdderessOfTssVerifierId() async throws {
Expand All @@ -214,7 +210,6 @@ final class SapphireTest: XCTestCase {
XCTAssertEqual(pubAddress.metadata?.nonce, BigUInt("0"))
XCTAssertEqual(pubAddress.metadata?.upgraded, false)
XCTAssertEqual(pubAddress.metadata?.typeOfUser, UserType(rawValue: "v2"))
XCTAssertEqual(pubAddress.nodesData?.nodeIndexes.count, 3)
}

func testAssignKeyToTssVerifier() async throws {
Expand Down Expand Up @@ -271,7 +266,6 @@ final class SapphireTest: XCTestCase {
XCTAssertEqual(pubAddress.metadata?.nonce, BigUInt.zero)
XCTAssertEqual(pubAddress.metadata?.upgraded, false)
XCTAssertEqual(pubAddress.metadata?.typeOfUser, UserType(rawValue: "v2"))
XCTAssertEqual(pubAddress.nodesData?.nodeIndexes.count, 5)
}

func testLoginWhenHashEnabled() async throws {
Expand All @@ -297,7 +291,6 @@ final class SapphireTest: XCTestCase {
XCTAssertEqual(result.metadata?.nonce?.serialize().hexString, "8e80e560ae59319938f7ef727ff2c5346caac1c7f5be96d3076e3342ad1d20b7")
XCTAssertEqual(result.metadata?.typeOfUser, .v2)
XCTAssertEqual(result.metadata?.upgraded, false)
XCTAssertNotEqual(result.nodesData?.nodeIndexes.count, 0)
}

func testAggregrateLoginWithEmail(email: String) async throws {
Expand Down Expand Up @@ -336,4 +329,32 @@ final class SapphireTest: XCTestCase {
try await testAggregrateLoginWithEmail(email: email)
}
*/


func testGating() async throws {
let torus = TorusUtils(enableOneKey: true, network: .sapphire(.SAPPHIRE_MAINNET), clientId: "YOUR_CLIENT_ID")
let token = try generateIdToken(email: TORUS_TEST_EMAIL)

let verifierParams = VerifierParams(verifier_id: TORUS_TEST_EMAIL)

let nodeDetails = try await get_fnd_and_tu_data(verifer: "w3a-auth0-demo", veriferID: TORUS_TEST_EMAIL)

do {
_ = try await torus.retrieveShares(
endpoints: nodeDetails.getTorusNodeEndpoints(),
torusNodePubs: nodeDetails.getTorusNodePub(),
indexes: nodeDetails.getTorusIndexes(),
verifier: "w3a-auth0-demo",
verifierParams: verifierParams,
idToken: token
)
XCTAssert(false, "Should not pass")
}catch {
if (!error.localizedDescription.contains("code: 1001")) {
XCTAssert(false, "Should fail with signer allow gating error")
}
}

}

}
8 changes: 2 additions & 6 deletions Tests/TorusUtilsTests/TestnetTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class TestnetTest: XCTestCase {

func getFNDAndTUData(verifer: String, veriferID: String, enableOneKey: Bool = false) async throws -> AllNodeDetailsModel {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
tu = TorusUtils(enableOneKey: enableOneKey, signerHost: signerHost, allowHost: allowHost, network: .legacy(.TESTNET))
tu = TorusUtils(enableOneKey: enableOneKey, signerHost: signerHost, allowHost: allowHost, network: .legacy(.TESTNET), clientId: "YOUR_CLIENT_ID")
return nodeDetails
}

Expand All @@ -42,7 +42,6 @@ class TestnetTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, UserType(rawValue: "v1"))
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

func test_getUserTypeAndAddress_testnet() async throws {
Expand All @@ -61,7 +60,6 @@ class TestnetTest: XCTestCase {
XCTAssertEqual(val.metadata?.nonce, 0)
XCTAssertEqual(val.metadata?.upgraded, false)
XCTAssertEqual(val.metadata?.typeOfUser, .v2)
XCTAssertEqual(val.nodesData?.nodeIndexes.count, 0)
}

/* TODO: Investigate further
Expand Down Expand Up @@ -100,7 +98,6 @@ class TestnetTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}

func test_aggregate_login_testnet() async throws {
Expand All @@ -126,8 +123,7 @@ class TestnetTest: XCTestCase {
XCTAssertEqual(data.metadata?.nonce, BigUInt(0))
XCTAssertEqual(data.metadata?.typeOfUser, .v1)
XCTAssertEqual(data.metadata?.upgraded, nil)
XCTAssertEqual(data.nodesData?.nodeIndexes.count, 0)
}
}
}

extension TestnetTest {
Expand Down
2 changes: 1 addition & 1 deletion Tests/TorusUtilsTests/oneKeyTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class OneKeyTest: XCTestCase {
func getFNDAndTUData(verifer: String, veriferID: String, enableOneKey: Bool = true) async throws -> AllNodeDetailsModel {
do {
let nodeDetails = try await fnd.getNodeDetails(verifier: verifer, verifierID: veriferID)
tu = TorusUtils(enableOneKey: enableOneKey, network: .legacy(.TESTNET))
tu = TorusUtils(enableOneKey: enableOneKey, network: .legacy(.TESTNET), clientId: "YOUR_CLIENT_ID")
return nodeDetails
} catch {
throw error
Expand Down