diff --git a/app/App/Components/WebView.swift b/app/App/Components/WebView.swift index 2e0c011e..d6215599 100644 --- a/app/App/Components/WebView.swift +++ b/app/App/Components/WebView.swift @@ -17,7 +17,33 @@ struct WebView: UIViewRepresentable { } func updateUIView(_ webView: WKWebView, context: Context) { + webView.uiDelegate = context.coordinator let request = URLRequest(url: url) webView.load(request) } + + func makeCoordinator() -> Coordinator { + Coordinator(self) + } +} + +class Coordinator: NSObject, WKUIDelegate { + var parent: WebView + + init(_ parent: WebView) { + self.parent = parent + } + + // Delegate methods go here + + @available(iOS 15, *) + func webView( + _ webView: WKWebView, + requestMediaCapturePermissionFor origin: WKSecurityOrigin, + initiatedByFrame frame: WKFrameInfo, + type: WKMediaCaptureType, + decisionHandler: @escaping (WKPermissionDecision) -> Void + ) { + decisionHandler(.grant) + } } diff --git a/app/App/Models/Model.swift b/app/App/Models/Model.swift index d7e7a144..15e1e294 100644 --- a/app/App/Models/Model.swift +++ b/app/App/Models/Model.swift @@ -45,6 +45,7 @@ class Model: ObservableObject { @Published var onRampQuoteId: String? @Published var onRampTotalUsd: String? @Published var estSubtotalUsd: Double = 0 + @Published var paymentTokenAmount: Double = 0 @Published var stripeRedirectUrl: URL? = nil // Sending USDC @@ -496,6 +497,7 @@ extension Model { self.onRampQuoteId = response.quoteId self.onRampTotalUsd = response.totalUsd self.estSubtotalUsd = response.estSubtotalUsd + self.paymentTokenAmount = response.paymentTokenAmount } } @@ -505,7 +507,7 @@ extension Model { VaultService.shared.send( CreateFunkitStripeCheckout( quoteId: quoteId, - parsedAmount: self.parsedAmount, + paymentTokenAmount: self.paymentTokenAmount, estSubtotalUsd: self.estSubtotalUsd ) ) { result in diff --git a/app/App/Services/VaultAPI/Models/FunkitStripeCheckout.swift b/app/App/Services/VaultAPI/Models/FunkitStripeCheckout.swift index 34b31d4a..4f802c3d 100644 --- a/app/App/Services/VaultAPI/Models/FunkitStripeCheckout.swift +++ b/app/App/Services/VaultAPI/Models/FunkitStripeCheckout.swift @@ -13,8 +13,3 @@ public struct FunkitStripeCheckout: Decodable { public let stripeRedirectUrl: String public let funkitDepositAddress: String } - - -//"stripeCheckoutId": "cos_1PVjoJCLFtXbeHljSqENG8EX", -//"stripeRedirectUrl": "https://crypto.link.com?session_hash=CCwQARoXChVhY2N0XzFQMUM1aENMRnRYYmVIbGoo_8PtswYyBvLEArs-lzotpIVcOo5xRizqxo51f_a6heze3V8sZAGkN1KRsvkFrKnhSf084RfpQ4-Iws7u", -//"funkitDepositAddress": "0 diff --git a/app/App/Services/VaultAPI/Models/FunkitStripeCheckoutQuote.swift b/app/App/Services/VaultAPI/Models/FunkitStripeCheckoutQuote.swift index e0673c00..a2313aad 100644 --- a/app/App/Services/VaultAPI/Models/FunkitStripeCheckoutQuote.swift +++ b/app/App/Services/VaultAPI/Models/FunkitStripeCheckoutQuote.swift @@ -10,9 +10,9 @@ import Foundation public struct FunkitStripeCheckoutQuote: Decodable { public let quoteId: String public let estSubtotalUsd: Double - public let paymentTokenAmount: String public let paymentTokenChain: String public let paymentTokenSymbol: String + public let paymentTokenAmount: Double public let networkFees: String public let cardFees: String public let totalUsd: String diff --git a/app/App/Services/VaultAPI/Requests/CreateFunkitStripeCheckout.swift b/app/App/Services/VaultAPI/Requests/CreateFunkitStripeCheckout.swift index aae76fb9..56b391bd 100644 --- a/app/App/Services/VaultAPI/Requests/CreateFunkitStripeCheckout.swift +++ b/app/App/Services/VaultAPI/Requests/CreateFunkitStripeCheckout.swift @@ -29,11 +29,13 @@ public struct CreateFunkitStripeCheckout: APIRequest { public let paymentTokenAmount: Double public let estSubtotalUsd: Double public let isNy: Bool + public let isEu: Bool - public init(quoteId: String, parsedAmount: Double, estSubtotalUsd: Double) { + public init(quoteId: String, paymentTokenAmount: Double, estSubtotalUsd: Double) { self.quoteId = quoteId - self.paymentTokenAmount = parsedAmount + self.paymentTokenAmount = paymentTokenAmount self.estSubtotalUsd = estSubtotalUsd self.isNy = false + self.isEu = true } } diff --git a/app/App/Services/VaultAPI/Requests/GetFunkitStripeCheckoutQuote.swift b/app/App/Services/VaultAPI/Requests/GetFunkitStripeCheckoutQuote.swift index c69c8bda..2cd9633c 100644 --- a/app/App/Services/VaultAPI/Requests/GetFunkitStripeCheckoutQuote.swift +++ b/app/App/Services/VaultAPI/Requests/GetFunkitStripeCheckoutQuote.swift @@ -24,10 +24,13 @@ public struct GetFunkitStripeCheckoutQuote: APIRequest { public let address: String public let tokenAmount: String public let isNy: Bool + public let isEu: Bool public init(address: String, amount: String) { - self.address = address +// self.address = address + self.address = "0x0171eaf72B36Dd904509297A51c4744Dcaf2E20E327dd1e7b08808DC0283f0A3" self.tokenAmount = amount self.isNy = false + self.isEu = true } } diff --git a/app/App/Services/VaultAPI/VaultAPIClient.swift b/app/App/Services/VaultAPI/VaultAPIClient.swift index b73e9883..d2e281be 100644 --- a/app/App/Services/VaultAPI/VaultAPIClient.swift +++ b/app/App/Services/VaultAPI/VaultAPIClient.swift @@ -30,19 +30,15 @@ class VaultService { public func send(_ request: T, completion: @escaping ResultCallback) { let urlRequest = self.endpoint(for: request) -// #if DEBUG -// print(urlRequest.url?.absoluteURL) -// #endif - let task = session.dataTask(with: urlRequest) { data, response, error in if let data = data, let httpResponse = response as? HTTPURLResponse { -//#if DEBUG -// print(data.base64EncodedString()) -//#endif +#if DEBUG + print(data.base64EncodedString()) +#endif if httpResponse.isSuccessful { // request is successful diff --git a/app/Vault-Info.plist b/app/Vault-Info.plist index 25e763ea..af07e3c9 100644 --- a/app/Vault-Info.plist +++ b/app/Vault-Info.plist @@ -2,12 +2,10 @@ - SN_NETWORK - $(SN_NETWORK) - PRIVATE_KEY_LABEL - $(PRIVATE_KEY_LABEL) API_BASE_URL $(API_BASE_URL) + CFBundleGetInfoString + CFBundleURLTypes @@ -21,6 +19,10 @@ + PRIVATE_KEY_LABEL + $(PRIVATE_KEY_LABEL) + SN_NETWORK + $(SN_NETWORK) UIAppFonts Sofia Pro Medium.otf diff --git a/app/Vault.xcodeproj/project.pbxproj b/app/Vault.xcodeproj/project.pbxproj index 125815d5..0475e828 100644 --- a/app/Vault.xcodeproj/project.pbxproj +++ b/app/Vault.xcodeproj/project.pbxproj @@ -1038,6 +1038,7 @@ INFOPLIST_FILE = "Vault-Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = Vault; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; + INFOPLIST_KEY_NSCameraUsageDescription = "We need access to the camera for the KYC process during the onramp"; INFOPLIST_KEY_NSContactsUsageDescription = "We need access to your contacts to show them in the app."; INFOPLIST_KEY_NSFaceIDUsageDescription = "Authenticate to access your secure data."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; @@ -1233,6 +1234,7 @@ INFOPLIST_FILE = "Vault-Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = Vault; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; + INFOPLIST_KEY_NSCameraUsageDescription = "We need access to the camera for the KYC process during the onramp"; INFOPLIST_KEY_NSContactsUsageDescription = "We need access to your contacts to show them in the app."; INFOPLIST_KEY_NSFaceIDUsageDescription = "Authenticate to access your secure data."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; @@ -1269,6 +1271,7 @@ INFOPLIST_FILE = "Vault-Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = Vault; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; + INFOPLIST_KEY_NSCameraUsageDescription = "We need access to the camera for the KYC process during the onramp"; INFOPLIST_KEY_NSContactsUsageDescription = "We need access to your contacts to show them in the app."; INFOPLIST_KEY_NSFaceIDUsageDescription = "Authenticate to access your secure data."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;