From 5a12297979448862e7dec308008bee638ec9d5f8 Mon Sep 17 00:00:00 2001 From: Rui Date: Thu, 9 Nov 2023 10:23:06 -0800 Subject: [PATCH] Bump Abacus and show transfer error message --- dydx/Podfile.lock | 4 +- dydx/Pods/Local Podspecs/abacus.podspec.json | 6 +- dydx/Pods/Manifest.lock | 4 +- dydx/Pods/Pods.xcodeproj/project.pbxproj | 130 +++++++++--------- .../Receipt/dydxValidationViewPresenter.swift | 11 +- ...xTransferInputCtaButtonViewPresenter.swift | 3 + podspecs/Abacus.podspec | 2 +- 7 files changed, 82 insertions(+), 78 deletions(-) diff --git a/dydx/Podfile.lock b/dydx/Podfile.lock index 49a047ead..34a980d5c 100644 --- a/dydx/Podfile.lock +++ b/dydx/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Abacus (1.0.20) + - Abacus (1.0.24) - Amplitude-iOS (4.10.0) - AppsFlyerFramework (6.12.2): - AppsFlyerFramework/Main (= 6.12.2) @@ -379,7 +379,7 @@ CHECKOUT OPTIONS: :http: https://ios-releases.fullstory.com/fullstory-1.29.0-xcframework.tar.gz SPEC CHECKSUMS: - Abacus: 521cdee506e6efad5c3d04eb12b370466b10bbd1 + Abacus: fee4da3726a276a18de4eb2d88b807217c547071 Amplitude-iOS: 7d8cdc3408ba35c2e68368fc7c692cd104606b94 AppsFlyerFramework: 6eb4d89d2eb9a6632317f1055b359d9fd85fd5ff Atributika: 0eabae2cc37999e79c5b94f60213642946991b1c diff --git a/dydx/Pods/Local Podspecs/abacus.podspec.json b/dydx/Pods/Local Podspecs/abacus.podspec.json index f073b91c1..6537eb995 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.0.20", + "version": "1.0.24", "homepage": "https://github.com/dydxprotocol/v4-abacus", "source": { "git": "git@github.com:dydxprotocol/v4-abacus.git", - "tag": "v1.0.20" + "tag": "v1.0.24" }, "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.0.20 $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.0.24 $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 49a047ead..34a980d5c 100644 --- a/dydx/Pods/Manifest.lock +++ b/dydx/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - Abacus (1.0.20) + - Abacus (1.0.24) - Amplitude-iOS (4.10.0) - AppsFlyerFramework (6.12.2): - AppsFlyerFramework/Main (= 6.12.2) @@ -379,7 +379,7 @@ CHECKOUT OPTIONS: :http: https://ios-releases.fullstory.com/fullstory-1.29.0-xcframework.tar.gz SPEC CHECKSUMS: - Abacus: 521cdee506e6efad5c3d04eb12b370466b10bbd1 + Abacus: fee4da3726a276a18de4eb2d88b807217c547071 Amplitude-iOS: 7d8cdc3408ba35c2e68368fc7c692cd104606b94 AppsFlyerFramework: 6eb4d89d2eb9a6632317f1055b359d9fd85fd5ff Atributika: 0eabae2cc37999e79c5b94f60213642946991b1c diff --git a/dydx/Pods/Pods.xcodeproj/project.pbxproj b/dydx/Pods/Pods.xcodeproj/project.pbxproj index 1ec191e28..2c26e1b76 100644 --- a/dydx/Pods/Pods.xcodeproj/project.pbxproj +++ b/dydx/Pods/Pods.xcodeproj/project.pbxproj @@ -23,10 +23,10 @@ }; 2B2AD932AF1A90828B4DFC5AC6955ADA /* Abacus */ = { isa = PBXAggregateTarget; - buildConfigurationList = 9457EAB7EE7812E82EF28A4F739A5ED1 /* Build configuration list for PBXAggregateTarget "Abacus" */; + buildConfigurationList = 5127FB23E2C7DA885BBB8E9B2B39174F /* Build configuration list for PBXAggregateTarget "Abacus" */; buildPhases = ( - 32A288162885208CFF1BFB56178319D3 /* [CP-User] Build abacus */, - 211FC600C7A4C6087343A7599AB2C4A5 /* [CP] Copy dSYMs */, + 26D35D6F3D9FFBA08BAD169594BF94C0 /* [CP-User] Build abacus */, + 4B95EB3C9AC08BBC76EEB6ECA1F88836 /* [CP] Copy dSYMs */, ); dependencies = ( ); @@ -23861,48 +23861,48 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; - 211FC600C7A4C6087343A7599AB2C4A5 /* [CP] Copy dSYMs */ = { + 26D35D6F3D9FFBA08BAD169594BF94C0 /* [CP-User] Build abacus */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - 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", - ); + name = "[CP-User] Build abacus"; runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms.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.0.24 $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"; }; - 32A288162885208CFF1BFB56178319D3 /* [CP-User] Build abacus */ = { + 3848528C72BC011A1D8E8829E8F3E9B0 /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - name = "[CP-User] Build abacus"; + 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", + ); 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.0.20 $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/AppsFlyerFramework/AppsFlyerFramework-xcframeworks.sh\"\n"; + showEnvVarsInLog = 0; }; - 3848528C72BC011A1D8E8829E8F3E9B0 /* [CP] Copy XCFrameworks */ = { + 4B95EB3C9AC08BBC76EEB6ECA1F88836 /* [CP] Copy dSYMs */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-input-files.xcfilelist", ); - name = "[CP] Copy XCFrameworks"; + name = "[CP] Copy dSYMs"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms.sh\"\n"; showEnvVarsInLog = 0; }; 74D6D070B8379B2E3A8ED6BBFBDAD645 /* [CP] Copy XCFrameworks */ = { @@ -35187,6 +35187,23 @@ }; name = Debug; }; + 6010530F7E771F921578E83FC2238818 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4519ED1F3D0D7E92221F47C9BBE8D093 /* 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; + }; 61578F13AE35B35FD238A87379C1112B /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 25E57531B4A54CD33E192ED1FA5B280E /* MaterialActivityIndicator.release.xcconfig */; @@ -35261,6 +35278,24 @@ }; name = Release; }; + 628319EE54C7F32308D5C1A33FCF07EA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B2507D675176126EE976055B13E079FD /* 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; + }; 628A0A74533B8F604B631AC47EF8DA09 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 31FB31A69ECC7406AAEAFCF5ACC2DDF4 /* Pods-iOS-dydxChartTests.release.xcconfig */; @@ -36730,24 +36765,6 @@ }; name = Debug; }; - 90F8EA31F0A2E65A91ECAA9E9A8B81A6 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B2507D675176126EE976055B13E079FD /* 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; - }; 9553C89E183877A5CB2F3C6801BEC129 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -39907,23 +39924,6 @@ }; name = Debug; }; - FE953D43F6FD1A4DB4FAA01529A9C76F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4519ED1F3D0D7E92221F47C9BBE8D093 /* 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; - }; FFEA80E3C6CE39043041366D5672B8E3 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 33113D6BB496E780C8C6A43CE697CB6E /* Atributika.debug.xcconfig */; @@ -40313,6 +40313,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 5127FB23E2C7DA885BBB8E9B2B39174F /* Build configuration list for PBXAggregateTarget "Abacus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6010530F7E771F921578E83FC2238818 /* Debug */, + 628319EE54C7F32308D5C1A33FCF07EA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 51B12AB42DEEFED56FE03DD8840ECA23 /* Build configuration list for PBXNativeTarget "FirebasePerformance" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -40520,15 +40529,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9457EAB7EE7812E82EF28A4F739A5ED1 /* Build configuration list for PBXAggregateTarget "Abacus" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE953D43F6FD1A4DB4FAA01529A9C76F /* Debug */, - 90F8EA31F0A2E65A91ECAA9E9A8B81A6 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 95E9AE15672146DDC4C896DBF94FBB5D /* Build configuration list for PBXNativeTarget "FirebaseCore" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/dydx/dydxPresenters/dydxPresenters/_v4/Receipt/dydxValidationViewPresenter.swift b/dydx/dydxPresenters/dydxPresenters/_v4/Receipt/dydxValidationViewPresenter.swift index bf2019747..351678feb 100644 --- a/dydx/dydxPresenters/dydxPresenters/_v4/Receipt/dydxValidationViewPresenter.swift +++ b/dydx/dydxPresenters/dydxPresenters/_v4/Receipt/dydxValidationViewPresenter.swift @@ -54,11 +54,10 @@ class dydxValidationViewPresenter: HostedViewPresenter, Publishers.CombineLatest( AbacusStateManager.shared.state.validationErrors, AbacusStateManager.shared.state.transferInput - .map(\.errors) .removeDuplicates() ) - .sink { [weak self] validationErrors, transferErrors in - self?.update(errors: validationErrors, transferErrors: transferErrors) + .sink { [weak self] validationErrors, transferInput in + self?.update(errors: validationErrors, transferInput: transferInput) } .store(in: &subscriptions) @@ -71,7 +70,9 @@ class dydxValidationViewPresenter: HostedViewPresenter, receiptPresenter.stop() } - private func update(errors: [ValidationError], transferErrors: String?) { + private func update(errors: [ValidationError], transferInput: TransferInput?) { + let transferErrors = transferInput?.errors + let errorMessage = transferInput?.errorMessage let firstBlockingError = errors.first { $0.type == ErrorType.error } let firstWarning = errors.first { $0.type == ErrorType.warning } if let firstBlockingError = firstBlockingError { @@ -91,7 +92,7 @@ class dydxValidationViewPresenter: HostedViewPresenter, } else if let transferErrors = transferErrors, transferErrors.count > 0 { viewModel?.title = DataLocalizer.localize(path: "ERRORS.GENERAL.SOMETHING_WENT_WRONG_WITH_MESSAGE", params: ["ERROR_MESSAGE": ""]) - viewModel?.text = transferErrors + viewModel?.text = errorMessage ?? transferErrors viewModel?.errorType = .error if viewModel?.state == .hide { viewModel?.state = .showError diff --git a/dydx/dydxPresenters/dydxPresenters/_v4/Transfer/Components/dydxTransferInputCtaButtonViewPresenter.swift b/dydx/dydxPresenters/dydxPresenters/_v4/Transfer/Components/dydxTransferInputCtaButtonViewPresenter.swift index 38eb96414..89f2b35de 100644 --- a/dydx/dydxPresenters/dydxPresenters/_v4/Transfer/Components/dydxTransferInputCtaButtonViewPresenter.swift +++ b/dydx/dydxPresenters/dydxPresenters/_v4/Transfer/Components/dydxTransferInputCtaButtonViewPresenter.swift @@ -71,12 +71,15 @@ class dydxTransferInputCtaButtonViewPresenter: HostedViewPresenter "git@github.com:dydxprotocol/v4-abacus.git", :tag => "v#{spec.version}" } spec.authors = ''