From a0109b8c1b8ce3bb77933ba2b2e29fd679ca4ca5 Mon Sep 17 00:00:00 2001 From: Rui <102453770+ruixhuang@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:31:09 -0700 Subject: [PATCH] Bump Abacus (#244) --- dydx/Podfile.lock | 104 +++++++------- .../Sources/Amplitude/Amplitude.swift | 31 ++++- .../Sources/Amplitude/Configuration.swift | 3 + .../Sources/Amplitude/Constants.swift | 2 +- .../Sources/Amplitude/ObjC/ObjCPlugin.swift | 2 +- .../Sources/Amplitude/Sessions.swift | 3 + .../Amplitude/Utilities/EventPipeline.swift | 87 +++++++----- dydx/Pods/Local Podspecs/abacus.podspec.json | 6 +- dydx/Pods/Manifest.lock | 104 +++++++------- dydx/Pods/Pods.xcodeproj/project.pbxproj | 130 +++++++++--------- .../AmplitudeSwift/AmplitudeSwift-Info.plist | 2 +- ...Bundle-Amplitude-AmplitudeSwift-Info.plist | 2 +- .../FirebaseABTesting-Info.plist | 2 +- ...sting_Privacy-FirebaseABTesting-Info.plist | 2 +- .../FirebaseCore/FirebaseCore-Info.plist | 2 +- .../FirebaseCore/FirebaseCore.debug.xcconfig | 2 +- .../FirebaseCore.release.xcconfig | 2 +- ...rebaseCore_Privacy-FirebaseCore-Info.plist | 2 +- .../FirebaseCoreExtension-Info.plist | 2 +- ...n_Privacy-FirebaseCoreExtension-Info.plist | 2 +- .../FirebaseCoreInternal-Info.plist | 2 +- ...al_Privacy-FirebaseCoreInternal-Info.plist | 2 +- .../FirebaseCrashlytics-Info.plist | 2 +- ...ics_Privacy-FirebaseCrashlytics-Info.plist | 2 +- .../FirebaseInstallations-Info.plist | 2 +- ...s_Privacy-FirebaseInstallations-Info.plist | 2 +- .../FirebaseMessaging-Info.plist | 2 +- ...aging_Privacy-FirebaseMessaging-Info.plist | 2 +- .../FirebasePerformance-Info.plist | 2 +- .../FirebasePerformance.debug.xcconfig | 2 +- .../FirebasePerformance.release.xcconfig | 2 +- .../FirebaseRemoteConfig-Info.plist | 2 +- ...ig_Privacy-FirebaseRemoteConfig-Info.plist | 2 +- .../FirebaseRemoteConfigInterop-Info.plist | 2 +- .../FirebaseSessions-Info.plist | 2 +- .../FirebaseSharedSwift-Info.plist | 2 +- .../xcshareddata/swiftpm/Package.resolved | 20 ++- ...positWithdrawConfirmationViewBuilder.swift | 20 +-- .../dydxVaultDepositWithdrawViewBuilder.swift | 22 +-- .../Vault/Landing/dydxVaultViewBuilder.swift | 6 +- .../SharedSteps/ERC20ApprovalStep.swift | 2 +- .../dydxTitledNumberField.swift | 2 +- .../VaultTransferType.swift | 20 +-- ...DepositWithdrawConfirmationViewModel.swift | 44 +++--- .../dydxVaultDepositWithdrawViewModel.swift | 30 ++-- .../Vault/Landing/dydxVaultViewModel.swift | 14 +- podspecs/Abacus.podspec | 2 +- 47 files changed, 385 insertions(+), 321 deletions(-) diff --git a/dydx/Podfile.lock b/dydx/Podfile.lock index 8281c1f79..9f61ff496 100644 --- a/dydx/Podfile.lock +++ b/dydx/Podfile.lock @@ -1,6 +1,6 @@ PODS: - - Abacus (1.9.7) - - AmplitudeSwift (1.9.0): + - Abacus (1.10.3) + - AmplitudeSwift (1.9.2): - AnalyticsConnector (~> 1.0.1) - AnalyticsConnector (1.0.3) - AppsFlyerFramework (6.15.2): @@ -21,24 +21,24 @@ PODS: - EasyTipView (2.1.0) - EFQRCode (6.2.1): - swift_qrcodejs (~> 2.2.2) - - Firebase/AnalyticsWithoutAdIdSupport (11.1.0): + - Firebase/AnalyticsWithoutAdIdSupport (11.2.0): - Firebase/CoreOnly - - FirebaseAnalytics/WithoutAdIdSupport (~> 11.1.0) - - Firebase/Core (11.1.0): + - FirebaseAnalytics/WithoutAdIdSupport (~> 11.2.0) + - Firebase/Core (11.2.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.1.0) - - Firebase/CoreOnly (11.1.0): - - FirebaseCore (= 11.1.0) - - Firebase/Messaging (11.1.0): + - FirebaseAnalytics (~> 11.2.0) + - Firebase/CoreOnly (11.2.0): + - FirebaseCore (= 11.2.0) + - Firebase/Messaging (11.2.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.1.0) - - Firebase/Performance (11.1.0): + - FirebaseMessaging (~> 11.2.0) + - Firebase/Performance (11.2.0): - Firebase/CoreOnly - - FirebasePerformance (~> 11.1.0) - - FirebaseABTesting (11.1.0): + - FirebasePerformance (~> 11.2.0) + - FirebaseABTesting (11.2.0): - FirebaseCore (~> 11.0) - - FirebaseAnalytics (11.1.0): - - FirebaseAnalytics/AdIdSupport (= 11.1.0) + - FirebaseAnalytics (11.2.0): + - FirebaseAnalytics/AdIdSupport (= 11.2.0) - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) @@ -46,33 +46,33 @@ PODS: - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.1.0): + - FirebaseAnalytics/AdIdSupport (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.1.0) + - GoogleAppMeasurement (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/WithoutAdIdSupport (11.1.0): + - FirebaseAnalytics/WithoutAdIdSupport (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.1.0) + - GoogleAppMeasurement/WithoutAdIdSupport (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseCore (11.1.0): + - FirebaseCore (11.2.0): - FirebaseCoreInternal (~> 11.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreExtension (11.1.0): + - FirebaseCoreExtension (11.2.0): - FirebaseCore (~> 11.0) - - FirebaseCoreInternal (11.1.0): + - FirebaseCoreInternal (11.2.0): - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseCrashlytics (11.1.0): + - FirebaseCrashlytics (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - FirebaseRemoteConfigInterop (~> 11.0) @@ -81,12 +81,12 @@ PODS: - GoogleUtilities/Environment (~> 8.0) - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - FirebaseInstallations (11.1.0): + - FirebaseInstallations (11.2.0): - FirebaseCore (~> 11.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.1.0): + - FirebaseMessaging (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) @@ -95,7 +95,7 @@ PODS: - GoogleUtilities/Reachability (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - - FirebasePerformance (11.1.0): + - FirebasePerformance (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - FirebaseRemoteConfig (~> 11.0) @@ -105,7 +105,7 @@ PODS: - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - - FirebaseRemoteConfig (11.1.0): + - FirebaseRemoteConfig (11.2.0): - FirebaseABTesting (~> 11.0) - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) @@ -113,8 +113,8 @@ PODS: - FirebaseSharedSwift (~> 11.0) - GoogleUtilities/Environment (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseRemoteConfigInterop (11.1.0) - - FirebaseSessions (11.1.0): + - FirebaseRemoteConfigInterop (11.2.0) + - FirebaseSessions (11.2.0): - FirebaseCore (~> 11.0) - FirebaseCoreExtension (~> 11.0) - FirebaseInstallations (~> 11.0) @@ -123,23 +123,23 @@ PODS: - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - PromisesSwift (~> 2.1) - - FirebaseSharedSwift (11.1.0) + - FirebaseSharedSwift (11.2.0) - FloatingPanel (2.7.0) - - GoogleAppMeasurement (11.1.0): - - GoogleAppMeasurement/AdIdSupport (= 11.1.0) + - GoogleAppMeasurement (11.2.0): + - GoogleAppMeasurement/AdIdSupport (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.1.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.1.0) + - GoogleAppMeasurement/AdIdSupport (11.2.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.1.0): + - GoogleAppMeasurement/WithoutAdIdSupport (11.2.0): - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) @@ -382,8 +382,8 @@ CHECKOUT OPTIONS: :git: https://github.com/dydxprotocol/Charts.git SPEC CHECKSUMS: - Abacus: 2a1c939e93cef6ae544fc6b4034ed35b36d96c23 - AmplitudeSwift: 853ba36127560683432018ee6ef7e7551aadfdb4 + Abacus: 8e4875792b01c8eb94543a351a5d6876d22062e0 + AmplitudeSwift: 6c2c689f7dc83e6d9d90b7f53b93433c1436196a AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9 AppsFlyerFramework: 3c6c50b7b3f0f37f648a5b23114940e0766e65e8 Atributika: ecedf5259e4aa3c6278d840b6c18d60c1a8b6ca0 @@ -396,22 +396,22 @@ SPEC CHECKSUMS: DrawerMenu: f6ca91901e2b21086e3c19bcca278d3d3127e85f EasyTipView: a92b6edc377b81c5ac18e9fd35d5ee78e9409488 EFQRCode: a4d39ec3466b68dffa71de3b5caef7c9ceefdc53 - Firebase: fdb3bd378401f26a7adfcf446b0a630f8c20c0e8 - FirebaseABTesting: c2e22c3aab99afa81d0561708b2c1c356c556976 - FirebaseAnalytics: 9fcdb2e9844174bb405b34cc47092c9b91993d83 - FirebaseCore: 6e2a2782e234b14d48e880ed369ac55cda87fed7 - FirebaseCoreExtension: aa5c9779c2d0d39d83f1ceb3fdbafe80c4feecfa - FirebaseCoreInternal: adefedc9a88dbe393c4884640a73ec9e8e790f8c - FirebaseCrashlytics: 95cfe27373ff2edab39c28583d93cbf2dfff401d - FirebaseInstallations: d0a8fea5a6fa91abc661591cf57c0f0d70863e57 - FirebaseMessaging: 61014ecade746724664eee1f6c066c058a7c9fa7 - FirebasePerformance: 9303f34779bd99384838437c2b1fc1c1c9ff0d17 - FirebaseRemoteConfig: 05521e937b72e01847a7128da5a492327364c705 - FirebaseRemoteConfigInterop: abf8b1bbc0bf1b84abd22b66746926410bf91a87 - FirebaseSessions: 78f137e68dc01ca71606169ba4ac73b98c13752a - FirebaseSharedSwift: 260a35e08943ec810d820a70bc0359136351d0c5 + Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c + FirebaseABTesting: 2104d957ce33888a3d6f3bde298cdee376dde8f1 + FirebaseAnalytics: c36efd5710c60c17558650fa58c2066eca7e9265 + FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da + FirebaseCoreExtension: cda74ddfb001224bd8fd1d6e74698b4ed07803de + FirebaseCoreInternal: 0c569513412da9f3b31bd0b340013bbee8f295c5 + FirebaseCrashlytics: cfc69af5b53565dc6a5e563788809b5778ac4eac + FirebaseInstallations: 771177d89d6c451dc6e50085ec82e2fc77ed0a4a + FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152 + FirebasePerformance: c39138c0700b8ef6040f0b80b5707320808e2862 + FirebaseRemoteConfig: fca0b2d017fc1de52b28a4e5bcf2007c1a840457 + FirebaseRemoteConfigInterop: 477b26fdeb8fb5fbaf22fa9db5343b42289dc7db + FirebaseSessions: adcec8b72d0066a385e3affcd1bcb1ebb3908ce6 + FirebaseSharedSwift: 7a0d78d155ede78407f0fdc89fbc914014c7c540 FloatingPanel: c88e3fd981b7a74121ff48746fb14d496f5fd553 - GoogleAppMeasurement: 8bb20efc67c8fc1cff9c42a06c256caf55289bbf + GoogleAppMeasurement: 76d4f8b36b03bd8381fa9a7fe2cc7f99c0a2e93a GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d diff --git a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Amplitude.swift b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Amplitude.swift index ec301ee50..077d1fc33 100644 --- a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Amplitude.swift +++ b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Amplitude.swift @@ -72,6 +72,10 @@ public class Amplitude { configuration.optOutChanged = { [weak self] optOut in self?.timeline.onOptOutChanged(optOut) } + + trackingQueue.async { [self] in + self.trimQueuedEvents() + } } convenience init(apiKey: String, configuration: Configuration) { @@ -300,7 +304,6 @@ public class Amplitude { } else { sessionEvents = self.sessions.endCurrentSession() } - self.timeline.onSessionIdChanged(sessionId) self.sessions.assignEventId(events: sessionEvents).forEach { e in self.timeline.processEvent(event: e) } @@ -450,4 +453,30 @@ public class Amplitude { internal func isSandboxEnabled() -> Bool { return SandboxHelper().isSandboxEnabled() } + + func trimQueuedEvents() { + logger?.debug(message: "Trimming queued events..") + guard configuration.maxQueuedEventCount > 0, + let eventBlocks: [URL] = storage.read(key: .EVENTS), + !eventBlocks.isEmpty else { + return + } + + var eventCount = 0 + // Blocks are returned in sorted order, oldest -> newest. Reverse to count newest blocks first. + // Only whole blocks are deleted, meaning up to maxQueuedEventCount + flushQueueSize - 1 + // events may be left on device. + for eventBlock in eventBlocks.reversed() { + if eventCount < configuration.maxQueuedEventCount { + if let eventString = storage.getEventsString(eventBlock: eventBlock), + let eventArray = BaseEvent.fromArrayString(jsonString: eventString) { + eventCount += eventArray.count + } + } else { + logger?.debug(message: "Trimming \(eventBlock)") + storage.remove(eventBlock: eventBlock) + } + } + logger?.debug(message: "Completed trimming events, kept \(eventCount) most recent events") + } } diff --git a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Configuration.swift b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Configuration.swift index 4fabd0153..01510628d 100644 --- a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Configuration.swift +++ b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Configuration.swift @@ -48,6 +48,7 @@ public class Configuration { public internal(set) var autocapture: AutocaptureOptions public var offline: Bool? internal let diagonostics: Diagnostics + public var maxQueuedEventCount = -1 var optOutChanged: ((Bool) -> Void)? @available(*, deprecated, message: "Please use the `autocapture` parameter instead.") @@ -135,6 +136,7 @@ public class Configuration { // `trackingSessionEvents` has been replaced by `defaultTracking.sessions` autocapture: AutocaptureOptions = .sessions, identifyBatchIntervalMillis: Int = Constants.Configuration.IDENTIFY_BATCH_INTERVAL_MILLIS, + maxQueuedEventCount: Int = -1, migrateLegacyData: Bool = true, offline: Bool? = false ) { @@ -167,6 +169,7 @@ public class Configuration { self.minTimeBetweenSessionsMillis = minTimeBetweenSessionsMillis self.autocapture = autocapture self.identifyBatchIntervalMillis = identifyBatchIntervalMillis + self.maxQueuedEventCount = maxQueuedEventCount self.migrateLegacyData = migrateLegacyData // Logging is OFF by default self.loggerProvider.logLevel = logLevel.rawValue diff --git a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Constants.swift b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Constants.swift index 732274dd4..1b7451fd7 100644 --- a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Constants.swift +++ b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Constants.swift @@ -46,7 +46,7 @@ public enum ServerZone: Int { public struct Constants { static let SDK_LIBRARY = "amplitude-swift" - static let SDK_VERSION = "1.9.0" + static let SDK_VERSION = "1.9.2" public static let DEFAULT_API_HOST = "https://api2.amplitude.com/2/httpapi" public static let EU_DEFAULT_API_HOST = "https://api.eu.amplitude.com/2/httpapi" static let BATCH_API_HOST = "https://api2.amplitude.com/batch" diff --git a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/ObjC/ObjCPlugin.swift b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/ObjC/ObjCPlugin.swift index 1d0d91652..4fca3f36d 100644 --- a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/ObjC/ObjCPlugin.swift +++ b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/ObjC/ObjCPlugin.swift @@ -80,7 +80,7 @@ public class ObjCPlugin: NSObject { public init( type: PluginType, execute: @escaping (ObjCBaseEvent) -> ObjCBaseEvent?, - flush: @escaping() -> Void) + flush: @escaping () -> Void) { self.type = type self.setup = nil diff --git a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Sessions.swift b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Sessions.swift index a73ea5a64..46fc1d1f5 100644 --- a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Sessions.swift +++ b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Sessions.swift @@ -4,6 +4,7 @@ public class Sessions { private let configuration: Configuration private let storage: Storage private let logger: (any Logger)? + private let timeline: Timeline private var _sessionId: Int64 = -1 private(set) var sessionId: Int64 { get { _sessionId } @@ -14,6 +15,7 @@ public class Sessions { } catch { logger?.warn(message: "Can't write PREVIOUS_SESSION_ID to storage: \(error)") } + timeline.onSessionIdChanged(_sessionId) } } @@ -47,6 +49,7 @@ public class Sessions { configuration = amplitude.configuration storage = amplitude.storage logger = amplitude.logger + timeline = amplitude.timeline self._sessionId = amplitude.storage.read(key: .PREVIOUS_SESSION_ID) ?? -1 self._lastEventId = amplitude.storage.read(key: .LAST_EVENT_ID) ?? 0 self._lastEventTime = amplitude.storage.read(key: .LAST_EVENT_TIME) ?? -1 diff --git a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Utilities/EventPipeline.swift b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Utilities/EventPipeline.swift index 0639bf1c6..becc7313e 100644 --- a/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Utilities/EventPipeline.swift +++ b/dydx/Pods/AmplitudeSwift/Sources/Amplitude/Utilities/EventPipeline.swift @@ -17,11 +17,8 @@ public class EventPipeline { internal var flushTimer: QueueTimer? private let uploadsQueue = DispatchQueue(label: "uploadsQueue.amplitude.com") - internal struct UploadTaskInfo { - let events: String - let task: URLSessionDataTask - } - private var uploads = [URL: UploadTaskInfo]() + private var flushCompletions: [() -> Void] = [] + private var currentUpload: URLSessionTask? init(amplitude: Amplitude) { storage = amplitude.storage @@ -60,33 +57,58 @@ public class EventPipeline { eventCount = 0 guard let storage = self.storage else { return } storage.rollover() - guard let eventFiles: [URL] = storage.read(key: StorageKey.EVENTS) else { return } - for eventFile in eventFiles { - uploadsQueue.sync { - guard uploads[eventFile] == nil else { - logger?.log(message: "Existing upload in progress, skipping...") - return - } - guard let eventsString = storage.getEventsString(eventBlock: eventFile), - !eventsString.isEmpty else { + + uploadsQueue.async { [self] in + if let completion { + flushCompletions.append(completion) + } + self.sendNextEventFile() + } + } + + private func sendNextEventFile() { + guard currentUpload == nil else { + logger?.log(message: "Existing upload in progress, skipping...") + return + } + + guard let storage = storage, + let eventFiles: [URL] = storage.read(key: StorageKey.EVENTS), + let nextEventFile = eventFiles.first else { + flushCompletions.forEach { $0() } + flushCompletions.removeAll() + logger?.debug(message: "No event files to upload") + return + } + + guard configuration.offline != true else { + logger?.debug(message: "Skipping flush while offline.") + return + } + + guard let eventsString = storage.getEventsString(eventBlock: nextEventFile), + !eventsString.isEmpty else { + logger?.log(message: "Could not read events file: \(nextEventFile)") + return + } + + currentUpload = httpClient.upload(events: eventsString) { [self] result in + let responseHandler = storage.getResponseHandler( + configuration: self.configuration, + eventPipeline: self, + eventBlock: nextEventFile, + eventsString: eventsString + ) + responseHandler.handle(result: result) + // Don't send the next event file if we're being deallocated + self.uploadsQueue.async { [weak self] in + guard let self = self else { return } - let uploadTask = httpClient.upload(events: eventsString) { [self] result in - let responseHandler = storage.getResponseHandler( - configuration: self.configuration, - eventPipeline: self, - eventBlock: eventFile, - eventsString: eventsString - ) - responseHandler.handle(result: result) - self.completeUpload(for: eventFile) - } - if let uploadTask { - uploads[eventFile] = UploadTaskInfo(events: eventsString, task: uploadTask) - } + self.currentUpload = nil + self.sendNextEventFile() } } - completion?() } func start() { @@ -106,12 +128,3 @@ public class EventPipeline { return count != 0 ? count : 1 } } - -extension EventPipeline { - - func completeUpload(for eventBlock: URL) { - uploadsQueue.sync { - uploads[eventBlock] = nil - } - } -} diff --git a/dydx/Pods/Local Podspecs/abacus.podspec.json b/dydx/Pods/Local Podspecs/abacus.podspec.json index f442ec65b..7d76b117b 100644 --- a/dydx/Pods/Local Podspecs/abacus.podspec.json +++ b/dydx/Pods/Local Podspecs/abacus.podspec.json @@ -1,10 +1,10 @@ { "name": "Abacus", - "version": "1.9.7", + "version": "1.10.3", "homepage": "https://github.com/dydxprotocol/v4-abacus", "source": { "git": "git@github.com:dydxprotocol/v4-abacus.git", - "tag": "v1.9.7" + "tag": "v1.10.3" }, "authors": "", "license": "", @@ -20,7 +20,7 @@ "name": "Build abacus", "execution_position": "before_compile", "shell_path": "/bin/sh", - "script": " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.9.7 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n" + "script": " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.10.3 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n" } ], "platforms": { diff --git a/dydx/Pods/Manifest.lock b/dydx/Pods/Manifest.lock index 8281c1f79..9f61ff496 100644 --- a/dydx/Pods/Manifest.lock +++ b/dydx/Pods/Manifest.lock @@ -1,6 +1,6 @@ PODS: - - Abacus (1.9.7) - - AmplitudeSwift (1.9.0): + - Abacus (1.10.3) + - AmplitudeSwift (1.9.2): - AnalyticsConnector (~> 1.0.1) - AnalyticsConnector (1.0.3) - AppsFlyerFramework (6.15.2): @@ -21,24 +21,24 @@ PODS: - EasyTipView (2.1.0) - EFQRCode (6.2.1): - swift_qrcodejs (~> 2.2.2) - - Firebase/AnalyticsWithoutAdIdSupport (11.1.0): + - Firebase/AnalyticsWithoutAdIdSupport (11.2.0): - Firebase/CoreOnly - - FirebaseAnalytics/WithoutAdIdSupport (~> 11.1.0) - - Firebase/Core (11.1.0): + - FirebaseAnalytics/WithoutAdIdSupport (~> 11.2.0) + - Firebase/Core (11.2.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.1.0) - - Firebase/CoreOnly (11.1.0): - - FirebaseCore (= 11.1.0) - - Firebase/Messaging (11.1.0): + - FirebaseAnalytics (~> 11.2.0) + - Firebase/CoreOnly (11.2.0): + - FirebaseCore (= 11.2.0) + - Firebase/Messaging (11.2.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.1.0) - - Firebase/Performance (11.1.0): + - FirebaseMessaging (~> 11.2.0) + - Firebase/Performance (11.2.0): - Firebase/CoreOnly - - FirebasePerformance (~> 11.1.0) - - FirebaseABTesting (11.1.0): + - FirebasePerformance (~> 11.2.0) + - FirebaseABTesting (11.2.0): - FirebaseCore (~> 11.0) - - FirebaseAnalytics (11.1.0): - - FirebaseAnalytics/AdIdSupport (= 11.1.0) + - FirebaseAnalytics (11.2.0): + - FirebaseAnalytics/AdIdSupport (= 11.2.0) - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) @@ -46,33 +46,33 @@ PODS: - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.1.0): + - FirebaseAnalytics/AdIdSupport (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.1.0) + - GoogleAppMeasurement (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/WithoutAdIdSupport (11.1.0): + - FirebaseAnalytics/WithoutAdIdSupport (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.1.0) + - GoogleAppMeasurement/WithoutAdIdSupport (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseCore (11.1.0): + - FirebaseCore (11.2.0): - FirebaseCoreInternal (~> 11.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreExtension (11.1.0): + - FirebaseCoreExtension (11.2.0): - FirebaseCore (~> 11.0) - - FirebaseCoreInternal (11.1.0): + - FirebaseCoreInternal (11.2.0): - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseCrashlytics (11.1.0): + - FirebaseCrashlytics (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - FirebaseRemoteConfigInterop (~> 11.0) @@ -81,12 +81,12 @@ PODS: - GoogleUtilities/Environment (~> 8.0) - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - FirebaseInstallations (11.1.0): + - FirebaseInstallations (11.2.0): - FirebaseCore (~> 11.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.1.0): + - FirebaseMessaging (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) @@ -95,7 +95,7 @@ PODS: - GoogleUtilities/Reachability (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - - FirebasePerformance (11.1.0): + - FirebasePerformance (11.2.0): - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) - FirebaseRemoteConfig (~> 11.0) @@ -105,7 +105,7 @@ PODS: - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - - FirebaseRemoteConfig (11.1.0): + - FirebaseRemoteConfig (11.2.0): - FirebaseABTesting (~> 11.0) - FirebaseCore (~> 11.0) - FirebaseInstallations (~> 11.0) @@ -113,8 +113,8 @@ PODS: - FirebaseSharedSwift (~> 11.0) - GoogleUtilities/Environment (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseRemoteConfigInterop (11.1.0) - - FirebaseSessions (11.1.0): + - FirebaseRemoteConfigInterop (11.2.0) + - FirebaseSessions (11.2.0): - FirebaseCore (~> 11.0) - FirebaseCoreExtension (~> 11.0) - FirebaseInstallations (~> 11.0) @@ -123,23 +123,23 @@ PODS: - GoogleUtilities/UserDefaults (~> 8.0) - nanopb (~> 3.30910.0) - PromisesSwift (~> 2.1) - - FirebaseSharedSwift (11.1.0) + - FirebaseSharedSwift (11.2.0) - FloatingPanel (2.7.0) - - GoogleAppMeasurement (11.1.0): - - GoogleAppMeasurement/AdIdSupport (= 11.1.0) + - GoogleAppMeasurement (11.2.0): + - GoogleAppMeasurement/AdIdSupport (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.1.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.1.0) + - GoogleAppMeasurement/AdIdSupport (11.2.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 11.2.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.1.0): + - GoogleAppMeasurement/WithoutAdIdSupport (11.2.0): - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) @@ -382,8 +382,8 @@ CHECKOUT OPTIONS: :git: https://github.com/dydxprotocol/Charts.git SPEC CHECKSUMS: - Abacus: 2a1c939e93cef6ae544fc6b4034ed35b36d96c23 - AmplitudeSwift: 853ba36127560683432018ee6ef7e7551aadfdb4 + Abacus: 8e4875792b01c8eb94543a351a5d6876d22062e0 + AmplitudeSwift: 6c2c689f7dc83e6d9d90b7f53b93433c1436196a AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9 AppsFlyerFramework: 3c6c50b7b3f0f37f648a5b23114940e0766e65e8 Atributika: ecedf5259e4aa3c6278d840b6c18d60c1a8b6ca0 @@ -396,22 +396,22 @@ SPEC CHECKSUMS: DrawerMenu: f6ca91901e2b21086e3c19bcca278d3d3127e85f EasyTipView: a92b6edc377b81c5ac18e9fd35d5ee78e9409488 EFQRCode: a4d39ec3466b68dffa71de3b5caef7c9ceefdc53 - Firebase: fdb3bd378401f26a7adfcf446b0a630f8c20c0e8 - FirebaseABTesting: c2e22c3aab99afa81d0561708b2c1c356c556976 - FirebaseAnalytics: 9fcdb2e9844174bb405b34cc47092c9b91993d83 - FirebaseCore: 6e2a2782e234b14d48e880ed369ac55cda87fed7 - FirebaseCoreExtension: aa5c9779c2d0d39d83f1ceb3fdbafe80c4feecfa - FirebaseCoreInternal: adefedc9a88dbe393c4884640a73ec9e8e790f8c - FirebaseCrashlytics: 95cfe27373ff2edab39c28583d93cbf2dfff401d - FirebaseInstallations: d0a8fea5a6fa91abc661591cf57c0f0d70863e57 - FirebaseMessaging: 61014ecade746724664eee1f6c066c058a7c9fa7 - FirebasePerformance: 9303f34779bd99384838437c2b1fc1c1c9ff0d17 - FirebaseRemoteConfig: 05521e937b72e01847a7128da5a492327364c705 - FirebaseRemoteConfigInterop: abf8b1bbc0bf1b84abd22b66746926410bf91a87 - FirebaseSessions: 78f137e68dc01ca71606169ba4ac73b98c13752a - FirebaseSharedSwift: 260a35e08943ec810d820a70bc0359136351d0c5 + Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c + FirebaseABTesting: 2104d957ce33888a3d6f3bde298cdee376dde8f1 + FirebaseAnalytics: c36efd5710c60c17558650fa58c2066eca7e9265 + FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da + FirebaseCoreExtension: cda74ddfb001224bd8fd1d6e74698b4ed07803de + FirebaseCoreInternal: 0c569513412da9f3b31bd0b340013bbee8f295c5 + FirebaseCrashlytics: cfc69af5b53565dc6a5e563788809b5778ac4eac + FirebaseInstallations: 771177d89d6c451dc6e50085ec82e2fc77ed0a4a + FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152 + FirebasePerformance: c39138c0700b8ef6040f0b80b5707320808e2862 + FirebaseRemoteConfig: fca0b2d017fc1de52b28a4e5bcf2007c1a840457 + FirebaseRemoteConfigInterop: 477b26fdeb8fb5fbaf22fa9db5343b42289dc7db + FirebaseSessions: adcec8b72d0066a385e3affcd1bcb1ebb3908ce6 + FirebaseSharedSwift: 7a0d78d155ede78407f0fdc89fbc914014c7c540 FloatingPanel: c88e3fd981b7a74121ff48746fb14d496f5fd553 - GoogleAppMeasurement: 8bb20efc67c8fc1cff9c42a06c256caf55289bbf + GoogleAppMeasurement: 76d4f8b36b03bd8381fa9a7fe2cc7f99c0a2e93a GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d diff --git a/dydx/Pods/Pods.xcodeproj/project.pbxproj b/dydx/Pods/Pods.xcodeproj/project.pbxproj index 4dc8441b1..688187f2e 100644 --- a/dydx/Pods/Pods.xcodeproj/project.pbxproj +++ b/dydx/Pods/Pods.xcodeproj/project.pbxproj @@ -22,10 +22,10 @@ }; 2B2AD932AF1A90828B4DFC5AC6955ADA /* Abacus */ = { isa = PBXAggregateTarget; - buildConfigurationList = A199A722CD10EE79B6CF0B7F0198E4A4 /* Build configuration list for PBXAggregateTarget "Abacus" */; + buildConfigurationList = B4F18E871ED3F113491F42ED916FEC2C /* Build configuration list for PBXAggregateTarget "Abacus" */; buildPhases = ( - 4951085D961F210A4281A2CFEEB423EC /* [CP-User] Build abacus */, - F94894F8DE32E104ECD77EE7E44762A1 /* [CP] Copy dSYMs */, + C3F16F30D825CDD67CE3B145F7F0C8A9 /* [CP-User] Build abacus */, + 5A7E57A260DAC4507FD710564D8726CF /* [CP] Copy dSYMs */, ); dependencies = ( ); @@ -24947,48 +24947,48 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; - 4951085D961F210A4281A2CFEEB423EC /* [CP-User] Build abacus */ = { + 5A7E57A260DAC4507FD710564D8726CF /* [CP] Copy dSYMs */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - name = "[CP-User] Build abacus"; + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-input-files.xcfilelist", + ); + name = "[CP] Copy dSYMs"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-output-files.xcfilelist", + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.9.7 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms.sh\"\n"; + showEnvVarsInLog = 0; }; - DB7C100E6D7A5CF954757DB8962D9B72 /* [CP] Copy XCFrameworks */ = { + C3F16F30D825CDD67CE3B145F7F0C8A9 /* [CP-User] Build abacus */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-input-files.xcfilelist", - ); - name = "[CP] Copy XCFrameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-output-files.xcfilelist", - ); + name = "[CP-User] Build abacus"; runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.10.3 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n"; }; - F94894F8DE32E104ECD77EE7E44762A1 /* [CP] Copy dSYMs */ = { + DB7C100E6D7A5CF954757DB8962D9B72 /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-input-files.xcfilelist", ); - name = "[CP] Copy dSYMs"; + name = "[CP] Copy XCFrameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; FFDD48E54DD558244332DE1F099D408D /* [CP] Copy XCFrameworks */ = { @@ -35987,24 +35987,6 @@ }; name = Release; }; - 439207EEE25E55B24D79EE3867090357 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C04AB0409BFEEDA4532A2A0B538DA8A7 /* Abacus.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; 4445F181D7C6E73D9CDA6E8084A35490 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7E869B2BAF840C7E723222C026815B06 /* GTMSessionFetcher.debug.xcconfig */; @@ -37164,6 +37146,23 @@ }; name = Debug; }; + 78EC28C8124B2535D7BD6F373E775ACB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 41314D7B95A0B34C71BD65F325E4C9F3 /* Abacus.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; 7B7820CF1A2FBD8D59E3CF85F81D37C8 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9D4E6CF0A1A7F0B65DC52FDF225F01E3 /* Pods-iOS-dydxViews.release.xcconfig */; @@ -38153,6 +38152,24 @@ }; name = Release; }; + 8FF420BF22998F15D065BBC8A2AD05A4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C04AB0409BFEEDA4532A2A0B538DA8A7 /* Abacus.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; 90AD26875DEEFBE90599E13461B3B2ED /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 083BC216DCA0FF40AE0113AAB1A37FA0 /* GoogleAppMeasurement.release.xcconfig */; @@ -41340,23 +41357,6 @@ }; name = Debug; }; - EA48DC338651BA6898FA8A5CAF1F8735 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 41314D7B95A0B34C71BD65F325E4C9F3 /* Abacus.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; EB64E6D90D11C123898366A6FC668CC4 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 1203BEE2950F5CD72D6FA125BE08334C /* Pods-iOS-ParticlesKit.release.xcconfig */; @@ -42892,15 +42892,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A199A722CD10EE79B6CF0B7F0198E4A4 /* Build configuration list for PBXAggregateTarget "Abacus" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - EA48DC338651BA6898FA8A5CAF1F8735 /* Debug */, - 439207EEE25E55B24D79EE3867090357 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; A1E175DEBF07EE55EE7BB7A87A20555B /* Build configuration list for PBXNativeTarget "nanopb-nanopb_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -43009,6 +43000,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + B4F18E871ED3F113491F42ED916FEC2C /* Build configuration list for PBXAggregateTarget "Abacus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 78EC28C8124B2535D7BD6F373E775ACB /* Debug */, + 8FF420BF22998F15D065BBC8A2AD05A4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; B731205F7F75AD0610A9C1E6AC983D63 /* Build configuration list for PBXNativeTarget "FirebaseInstallations-FirebaseInstallations_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/dydx/Pods/Target Support Files/AmplitudeSwift/AmplitudeSwift-Info.plist b/dydx/Pods/Target Support Files/AmplitudeSwift/AmplitudeSwift-Info.plist index 439bd15e9..81ea1e864 100644 --- a/dydx/Pods/Target Support Files/AmplitudeSwift/AmplitudeSwift-Info.plist +++ b/dydx/Pods/Target Support Files/AmplitudeSwift/AmplitudeSwift-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.9.0 + 1.9.2 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/AmplitudeSwift/ResourceBundle-Amplitude-AmplitudeSwift-Info.plist b/dydx/Pods/Target Support Files/AmplitudeSwift/ResourceBundle-Amplitude-AmplitudeSwift-Info.plist index 160f16790..e7f2ef6cf 100644 --- a/dydx/Pods/Target Support Files/AmplitudeSwift/ResourceBundle-Amplitude-AmplitudeSwift-Info.plist +++ b/dydx/Pods/Target Support Files/AmplitudeSwift/ResourceBundle-Amplitude-AmplitudeSwift-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.9.0 + 1.9.2 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist b/dydx/Pods/Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist b/dydx/Pods/Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist b/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig b/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig index c05d1b4ec..cfaa15180 100644 --- a/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig +++ b/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.debug.xcconfig @@ -2,7 +2,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" GCC_C_LANGUAGE_STANDARD = c99 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 Firebase_VERSION=11.1.0 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 Firebase_VERSION=11.2.0 HEADER_SEARCH_PATHS = $(inherited) "${PODS_TARGET_SRCROOT}" LD_RUNPATH_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" OTHER_CFLAGS = $(inherited) -fno-autolink diff --git a/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig b/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig index c05d1b4ec..cfaa15180 100644 --- a/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig +++ b/dydx/Pods/Target Support Files/FirebaseCore/FirebaseCore.release.xcconfig @@ -2,7 +2,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" GCC_C_LANGUAGE_STANDARD = c99 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 Firebase_VERSION=11.1.0 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 Firebase_VERSION=11.2.0 HEADER_SEARCH_PATHS = $(inherited) "${PODS_TARGET_SRCROOT}" LD_RUNPATH_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" OTHER_CFLAGS = $(inherited) -fno-autolink diff --git a/dydx/Pods/Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist b/dydx/Pods/Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCoreExtension/FirebaseCoreExtension-Info.plist b/dydx/Pods/Target Support Files/FirebaseCoreExtension/FirebaseCoreExtension-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseCoreExtension/FirebaseCoreExtension-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCoreExtension/FirebaseCoreExtension-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCoreExtension/ResourceBundle-FirebaseCoreExtension_Privacy-FirebaseCoreExtension-Info.plist b/dydx/Pods/Target Support Files/FirebaseCoreExtension/ResourceBundle-FirebaseCoreExtension_Privacy-FirebaseCoreExtension-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseCoreExtension/ResourceBundle-FirebaseCoreExtension_Privacy-FirebaseCoreExtension-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCoreExtension/ResourceBundle-FirebaseCoreExtension_Privacy-FirebaseCoreExtension-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist b/dydx/Pods/Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist b/dydx/Pods/Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCrashlytics/FirebaseCrashlytics-Info.plist b/dydx/Pods/Target Support Files/FirebaseCrashlytics/FirebaseCrashlytics-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseCrashlytics/FirebaseCrashlytics-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCrashlytics/FirebaseCrashlytics-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseCrashlytics/ResourceBundle-FirebaseCrashlytics_Privacy-FirebaseCrashlytics-Info.plist b/dydx/Pods/Target Support Files/FirebaseCrashlytics/ResourceBundle-FirebaseCrashlytics_Privacy-FirebaseCrashlytics-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseCrashlytics/ResourceBundle-FirebaseCrashlytics_Privacy-FirebaseCrashlytics-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseCrashlytics/ResourceBundle-FirebaseCrashlytics_Privacy-FirebaseCrashlytics-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist b/dydx/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist b/dydx/Pods/Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-Info.plist b/dydx/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseMessaging/FirebaseMessaging-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseMessaging/ResourceBundle-FirebaseMessaging_Privacy-FirebaseMessaging-Info.plist b/dydx/Pods/Target Support Files/FirebaseMessaging/ResourceBundle-FirebaseMessaging_Privacy-FirebaseMessaging-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseMessaging/ResourceBundle-FirebaseMessaging_Privacy-FirebaseMessaging-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseMessaging/ResourceBundle-FirebaseMessaging_Privacy-FirebaseMessaging-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance-Info.plist b/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance-Info.plist +++ b/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.debug.xcconfig b/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.debug.xcconfig index fa8179eba..132d03554 100644 --- a/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.debug.xcconfig +++ b/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.debug.xcconfig @@ -2,7 +2,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FirebasePerformance FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseABTesting" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreExtension" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfig" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfigInterop" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSessions" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSharedSwift" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesSwift" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" GCC_C_LANGUAGE_STANDARD = c99 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 FIRPerformance_LIB_VERSION=11.1.0 PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 FIRPerformance_LIB_VERSION=11.2.0 PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_TARGET_SRCROOT}" LD_RUNPATH_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseABTesting" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreExtension" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfig" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfigInterop" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSessions" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSharedSwift" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesSwift" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" OTHER_LDFLAGS = $(inherited) -framework "CoreTelephony" -framework "FirebaseCore" -framework "FirebaseInstallations" -framework "FirebaseRemoteConfig" -framework "FirebaseSessions" -framework "Foundation" -framework "GoogleDataTransport" -framework "GoogleUtilities" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" diff --git a/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.release.xcconfig b/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.release.xcconfig index fa8179eba..132d03554 100644 --- a/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.release.xcconfig +++ b/dydx/Pods/Target Support Files/FirebasePerformance/FirebasePerformance.release.xcconfig @@ -2,7 +2,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FirebasePerformance FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseABTesting" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreExtension" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfig" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfigInterop" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSessions" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSharedSwift" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesSwift" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" GCC_C_LANGUAGE_STANDARD = c99 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 FIRPerformance_LIB_VERSION=11.1.0 PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 FIRPerformance_LIB_VERSION=11.2.0 PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_TARGET_SRCROOT}" LD_RUNPATH_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseABTesting" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreExtension" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfig" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfigInterop" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSessions" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSharedSwift" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC" "${PODS_CONFIGURATION_BUILD_DIR}/PromisesSwift" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" OTHER_LDFLAGS = $(inherited) -framework "CoreTelephony" -framework "FirebaseCore" -framework "FirebaseInstallations" -framework "FirebaseRemoteConfig" -framework "FirebaseSessions" -framework "Foundation" -framework "GoogleDataTransport" -framework "GoogleUtilities" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" diff --git a/dydx/Pods/Target Support Files/FirebaseRemoteConfig/FirebaseRemoteConfig-Info.plist b/dydx/Pods/Target Support Files/FirebaseRemoteConfig/FirebaseRemoteConfig-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseRemoteConfig/FirebaseRemoteConfig-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseRemoteConfig/FirebaseRemoteConfig-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseRemoteConfig/ResourceBundle-FirebaseRemoteConfig_Privacy-FirebaseRemoteConfig-Info.plist b/dydx/Pods/Target Support Files/FirebaseRemoteConfig/ResourceBundle-FirebaseRemoteConfig_Privacy-FirebaseRemoteConfig-Info.plist index b1ec0473f..18ff00955 100644 --- a/dydx/Pods/Target Support Files/FirebaseRemoteConfig/ResourceBundle-FirebaseRemoteConfig_Privacy-FirebaseRemoteConfig-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseRemoteConfig/ResourceBundle-FirebaseRemoteConfig_Privacy-FirebaseRemoteConfig-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop-Info.plist b/dydx/Pods/Target Support Files/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseSessions/FirebaseSessions-Info.plist b/dydx/Pods/Target Support Files/FirebaseSessions/FirebaseSessions-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseSessions/FirebaseSessions-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseSessions/FirebaseSessions-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/FirebaseSharedSwift/FirebaseSharedSwift-Info.plist b/dydx/Pods/Target Support Files/FirebaseSharedSwift/FirebaseSharedSwift-Info.plist index c9b5eb390..d0eeab3c1 100644 --- a/dydx/Pods/Target Support Files/FirebaseSharedSwift/FirebaseSharedSwift-Info.plist +++ b/dydx/Pods/Target Support Files/FirebaseSharedSwift/FirebaseSharedSwift-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 11.1.0 + 11.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/dydx.xcworkspace/xcshareddata/swiftpm/Package.resolved b/dydx/dydx.xcworkspace/xcshareddata/swiftpm/Package.resolved index 30adbe9ee..1601797ea 100644 --- a/dydx/dydx.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/dydx/dydx.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "3cd7346cace16cf660f9c22302c5ca6770335c67902f3fd155011356a9d43929", + "originHash" : "975d00e29efb8d2ca017c5e61df90418ac01f7d7143e85a3f9ddb4eb982154e4", "pins" : [ { "identity" : "bigint", @@ -37,6 +37,15 @@ "version" : "2.0.2" } }, + { + "identity" : "keyboardobserving", + "kind" : "remoteSourceControl", + "location" : "https://github.com/nickffox/KeyboardObserving", + "state" : { + "branch" : "master", + "revision" : "48134b5460435cc9d048223ad7560ee2e40f3d4a" + } + }, { "identity" : "percy-xcui-swift", "kind" : "remoteSourceControl", @@ -190,6 +199,15 @@ "version" : "9.0.9" } }, + { + "identity" : "swiftui-introspect", + "kind" : "remoteSourceControl", + "location" : "https://github.com/siteline/SwiftUI-Introspect.git", + "state" : { + "revision" : "121c146fe591b1320238d054ae35c81ffa45f45a", + "version" : "0.12.0" + } + }, { "identity" : "wallet-mobile-sdk", "kind" : "remoteSourceControl", diff --git a/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawConfirmationViewBuilder.swift b/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawConfirmationViewBuilder.swift index e93f52b9b..d1affc8a2 100644 --- a/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawConfirmationViewBuilder.swift +++ b/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawConfirmationViewBuilder.swift @@ -61,23 +61,23 @@ private class dydxVaultDepositWithdrawConfirmationViewPresenter: HostedViewPrese viewModel.cancelAction = { Router.shared?.navigate(to: RoutingRequest(path: "/action/dismiss"), animated: true, completion: nil) - } - - //TODO: replace + } + + // TODO: replace viewModel.elevatedSlippageAmount = 4.20 viewModel.requiresAcknowledgeHighSlippage = true - + self.viewModel = viewModel } - + override func start() { super.start() - - //TODO: replace with real hooks from abacus + + // TODO: replace with real hooks from abacus update() } - - //TODO: replace with real data from abacus + + // TODO: replace with real data from abacus func update() { let crossFreeCollateralReceiptItem = dydxReceiptChangeItemView(title: DataLocalizer.localize(path: "APP.GENERAL.CROSS_FREE_COLLATERAL"), value: AmountChangeModel(before: AmountTextModel(amount: 30.01), @@ -94,7 +94,7 @@ private class dydxVaultDepositWithdrawConfirmationViewPresenter: HostedViewPrese let crossMarginUsageItem = dydxReceiptChangeItemView(title: DataLocalizer.localize(path: "APP.GENERAL.CROSS_MARGIN_USAGE"), value: AmountChangeModel(before: AmountTextModel(amount: 30.01), after: AmountTextModel(amount: 30.02))) - + switch transferType { case .deposit: viewModel?.receiptItems = [crossFreeCollateralReceiptItem, crossMarginUsageItem, yourVaultBalanceReceiptItem] diff --git a/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawViewBuilder.swift b/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawViewBuilder.swift index 233410bd6..a0b36a9a4 100644 --- a/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawViewBuilder.swift +++ b/dydx/dydxPresenters/dydxPresenters/_v4/Vault/DepositsAndWithdrawals/dydxVaultDepositWithdrawViewBuilder.swift @@ -65,38 +65,38 @@ private class dydxVaultDepositWithdrawViewPresenter: HostedViewPresenter, dydxVaultViewBuilderPresenterProtocol { override init() { super.init() - + viewModel = dydxVaultViewModel() viewModel?.vaultChart = dydxVaultChartViewModel() - + let usdcToken = AbacusStateManager.shared.environment?.usdcTokenInfo?.denom AbacusStateManager.shared.state.accountBalance(of: usdcToken) .sink {[weak self] usdcBalance in @@ -55,7 +55,7 @@ private class dydxVaultViewBuilderPresenter: HostedViewPresenter Void)? public var cancelAction: (() -> Void)? public var elevatedSlippageAmount: Double? public var receiptItems: [dydxReceiptChangeItemView]? - + @Published public var transferType: VaultTransferType @Published public var requiresAcknowledgeHighSlippage: Bool = false - + @Published fileprivate var amount: Double? @Published fileprivate var hasAcknowledgedHighSlippage: Bool = false public init(transferType: VaultTransferType) { self.transferType = transferType - - + } - + public override func createView(parentStyle: ThemeStyle = ThemeStyle.defaultStyle, styleKey: String? = nil) -> PlatformView { - PlatformView(viewModel: self, parentStyle: parentStyle, styleKey: styleKey) { [weak self] style in + PlatformView(viewModel: self, parentStyle: parentStyle, styleKey: styleKey) { [weak self] _ in guard let self = self else { return AnyView(PlatformView.nilView) } return VaultDepositWithdrawConfirmationView(viewModel: self) .wrappedInAnyView() @@ -46,13 +45,13 @@ public class dydxVaultDepositWithdrawConfirmationViewModel: PlatformViewModel { } } -fileprivate struct VaultDepositWithdrawConfirmationView: View { +private struct VaultDepositWithdrawConfirmationView: View { @ObservedObject var viewModel: dydxVaultDepositWithdrawConfirmationViewModel - + var options = VaultTransferType.allCases - + var body: some View { - + VStack(spacing: 24) { titleRow transferVisualization @@ -70,7 +69,7 @@ fileprivate struct VaultDepositWithdrawConfirmationView: View { .themeColor(background: .layer3) .ignoresSafeArea(edges: [.bottom]) } - + private var titleRow: some View { HStack(spacing: 16) { backButton @@ -79,18 +78,18 @@ fileprivate struct VaultDepositWithdrawConfirmationView: View { } .padding(.horizontal, 8) } - + private var titleText: some View { Text(viewModel.transferType.confirmTransferText) .themeColor(foreground: .textPrimary) .themeFont(fontType: .plus, fontSize: .largest) } - + private var backButton: some View { ChevronBackButtonModel(onBackButtonTap: viewModel.cancelAction ?? {}) .createView() } - + private var transferVisualization: some View { return HStack(alignment: .center, spacing: 16) { generationTransferStep(title: viewModel.transferType.transferOriginTitleText, thumbnail: viewModel.transferType.transferOriginImage, subtitle: "placeholder") @@ -104,8 +103,7 @@ fileprivate struct VaultDepositWithdrawConfirmationView: View { .fixedSize(horizontal: false, vertical: true) } - - + private func generationTransferStep(title: String, thumbnail: Image?, subtitle: String) -> some View { VStack(spacing: 8) { Text(title) @@ -139,7 +137,7 @@ fileprivate struct VaultDepositWithdrawConfirmationView: View { .clipShape(.rect(cornerRadius: 10)) } } - + @ViewBuilder private var receipts: some View { if viewModel.receiptItems?.count ?? 0 > 0 { @@ -151,14 +149,14 @@ fileprivate struct VaultDepositWithdrawConfirmationView: View { .clipShape(.rect(cornerRadius: 10)) } } - + @ViewBuilder private var withdrawalSlippageInlineAlert: some View { if let elevatedSlippageAmount = viewModel.elevatedSlippageAmount { let withdrawalSlippageInlineAlertAttributedText = AttributedString(localizerPathKey: "APP.VAULTS.SLIPPAGE_WARNING", params: ["LINK": DataLocalizer.localize(path: "APP.VAULTS.VAULT_FAQS"), "AMOUNT": dydxFormatter.shared.percent(number: elevatedSlippageAmount, digits: 2) ?? "--"], - //TODO: Replace + // TODO: Replace hyperlinks: ["withdraw": "https://test.com", "APP.VAULTS.VAULT_FAQS": "https://purple.com"], foreground: .textPrimary) @@ -168,16 +166,16 @@ fileprivate struct VaultDepositWithdrawConfirmationView: View { .createView() } } - + @ViewBuilder private var checkboxRow: some View { if viewModel.requiresAcknowledgeHighSlippage { - dydxCheckboxView(isChecked: $viewModel.hasAcknowledgedHighSlippage, + dydxCheckboxView(isChecked: $viewModel.hasAcknowledgedHighSlippage, text: DataLocalizer.localize(path: "APP.VAULTS.SLIPPAGE_ACK", params: ["AMOUNT": dydxFormatter.shared.percent(number: viewModel.elevatedSlippageAmount, digits: 2) ?? "--"])) } } - + private var submitButton: some View { let content: Text let state: PlatformButtonState diff --git a/dydx/dydxViews/dydxViews/_v4/Vault/DepositAndWithdrawal/dydxVaultDepositWithdrawViewModel.swift b/dydx/dydxViews/dydxViews/_v4/Vault/DepositAndWithdrawal/dydxVaultDepositWithdrawViewModel.swift index 94b8e70bc..8515d6d43 100644 --- a/dydx/dydxViews/dydxViews/_v4/Vault/DepositAndWithdrawal/dydxVaultDepositWithdrawViewModel.swift +++ b/dydx/dydxViews/dydxViews/_v4/Vault/DepositAndWithdrawal/dydxVaultDepositWithdrawViewModel.swift @@ -15,27 +15,27 @@ public class dydxVaultDepositWithdrawViewModel: PlatformViewModel { case enabled case disabled } - + public let submitState: State public var submitAction: (() -> Void)? - + @Published public private(set) var numberFormatter = dydxNumberInputFormatter() - + @Published public fileprivate(set) var selectedTransferType: VaultTransferType @Published fileprivate var amount: Double? fileprivate var maxAmount: Double = 0 - + public var inputReceiptChangeItems: [dydxReceiptChangeItemView]? public var inputInlineAlert: InlineAlertViewModel? public var buttonReceiptChangeItems: [dydxReceiptChangeItemView]? - + public init(selectedTransferType: VaultTransferType, submitState: State) { self.selectedTransferType = selectedTransferType self.submitState = submitState } - + public override func createView(parentStyle: ThemeStyle = ThemeStyle.defaultStyle, styleKey: String? = nil) -> PlatformView { - PlatformView(viewModel: self, parentStyle: parentStyle, styleKey: styleKey) { [weak self] style in + PlatformView(viewModel: self, parentStyle: parentStyle, styleKey: styleKey) { [weak self] _ in guard let self = self else { return AnyView(PlatformView.nilView) } return VaultDepositWithdrawView(viewModel: self) .wrappedInAnyView() @@ -43,11 +43,11 @@ public class dydxVaultDepositWithdrawViewModel: PlatformViewModel { } } -fileprivate struct VaultDepositWithdrawView: View { +private struct VaultDepositWithdrawView: View { @ObservedObject var viewModel: dydxVaultDepositWithdrawViewModel - + var options = VaultTransferType.allCases - + private var radioButtonSelector: some View { RadioButtonGroup(selected: $viewModel.selectedTransferType, options: options, @@ -58,9 +58,9 @@ fileprivate struct VaultDepositWithdrawView: View { itemHeight: 44) .leftAligned() } - + var body: some View { - + VStack(spacing: 0) { radioButtonSelector Color.clear.frame(height: 24) @@ -83,7 +83,7 @@ fileprivate struct VaultDepositWithdrawView: View { PlatformView.hideKeyboard() } } - + private var inputArea: some View { VStack(spacing: 16) { dydxTitledNumberField(title: viewModel.selectedTransferType.inputFieldTitle, @@ -102,7 +102,7 @@ fileprivate struct VaultDepositWithdrawView: View { .themeColor(background: .layer2) .clipShape(.rect(cornerRadius: 10)) } - + private var submitButton: some View { let content: Text let state: PlatformButtonState @@ -121,7 +121,7 @@ fileprivate struct VaultDepositWithdrawView: View { return PlatformButtonViewModel(content: content.wrappedViewModel, state: state, action: viewModel.submitAction ?? {}) .createView() } - + private var buttonArea: some View { VStack(spacing: 16) { VStack(spacing: 8) { diff --git a/dydx/dydxViews/dydxViews/_v4/Vault/Landing/dydxVaultViewModel.swift b/dydx/dydxViews/dydxViews/_v4/Vault/Landing/dydxVaultViewModel.swift index 2fa855b1f..1a624d540 100644 --- a/dydx/dydxViews/dydxViews/_v4/Vault/Landing/dydxVaultViewModel.swift +++ b/dydx/dydxViews/dydxViews/_v4/Vault/Landing/dydxVaultViewModel.swift @@ -224,7 +224,7 @@ private struct dydxVaultView: View { } .themeColor(background: .layer2) } - + private var positionsColumnsHeader: some View { HStack(spacing: dydxVaultPositionViewModel.interSectionPadding) { Group { @@ -249,7 +249,7 @@ private struct dydxVaultView: View { } .padding(.horizontal, 16) } - + private var positionsList: some View { ForEach(viewModel.positions ?? [], id: \.id) { position in position.createView() @@ -259,7 +259,7 @@ private struct dydxVaultView: View { } .padding(.horizontal, 16) } - + // MARK: Floating Buttons @ViewBuilder private var withdrawButton: some View { @@ -268,7 +268,7 @@ private struct dydxVaultView: View { .themeFont(fontType: .plus, fontSize: .medium) .themeColor(foreground: .textPrimary) .wrappedViewModel - + PlatformButtonViewModel(content: content, type: .defaultType(), state: .secondary, @@ -276,7 +276,7 @@ private struct dydxVaultView: View { .createView() } } - + @ViewBuilder private var depositButton: some View { if let depositAction = viewModel.depositAction { @@ -284,7 +284,7 @@ private struct dydxVaultView: View { .themeFont(fontType: .plus, fontSize: .medium) .themeColor(foreground: .textPrimary) .wrappedViewModel - + PlatformButtonViewModel(content: content, type: .defaultType(), state: .primary, @@ -292,7 +292,7 @@ private struct dydxVaultView: View { .createView() } } - + private var buttonStack: some View { HStack(spacing: 12) { withdrawButton diff --git a/podspecs/Abacus.podspec b/podspecs/Abacus.podspec index 24d9330c0..73fc4557d 100644 --- a/podspecs/Abacus.podspec +++ b/podspecs/Abacus.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = 'Abacus' -spec.version = '1.9.7' +spec.version = '1.10.3' spec.homepage = 'https://github.com/dydxprotocol/v4-abacus' spec.source = { :git => "git@github.com:dydxprotocol/v4-abacus.git", :tag => "v#{spec.version}" } spec.authors = ''