From 73c37f67605eb55601fadb1862036a16290a79c1 Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Tue, 19 May 2026 12:46:59 -0400 Subject: [PATCH] fix(onramp): include Coinbase order ID in Bugsnag error traces Signed-off-by: Brandon McAnsh --- .../kotlin/com/flipcash/app/onramp/CoinbaseOnRampWebview.kt | 3 +++ .../flipcash/app/onramp/internal/CoinbaseOnRampEventHandler.kt | 2 ++ .../app/onramp/internal/CoinbaseOnRampEventHandlerTest.kt | 1 + 3 files changed, 6 insertions(+) diff --git a/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/CoinbaseOnRampWebview.kt b/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/CoinbaseOnRampWebview.kt index 8275186ab..915992ab6 100644 --- a/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/CoinbaseOnRampWebview.kt +++ b/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/CoinbaseOnRampWebview.kt @@ -43,6 +43,7 @@ fun CoinbaseOnRampWebview( url = paymentLinkUrl, factoryExtension = { cleanup = configureForCoinbaseOnRamp( + orderId = orderId, onPaymentSuccess = { onPaymentSuccess(orderId) }, onPaymentFailure = onPaymentFailure, onCancel = onCancel, @@ -54,6 +55,7 @@ fun CoinbaseOnRampWebview( @SuppressLint("SetJavaScriptEnabled") private fun WebView.configureForCoinbaseOnRamp( + orderId: String, onPaymentSuccess: () -> Unit, onPaymentFailure: (CoinbaseOnRampWebError) -> Unit, onCancel: () -> Unit, @@ -162,6 +164,7 @@ private fun WebView.configureForCoinbaseOnRamp( settings.setSupportMultipleWindows(false) val eventHandler = CoinbaseOnRampEventHandler( + orderId = orderId, startMark = startMark, webViewVersion = webViewVersion, gmsVersion = gmsVersion, diff --git a/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandler.kt b/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandler.kt index f0c42f1d2..c9dad6726 100644 --- a/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandler.kt +++ b/apps/flipcash/shared/onramp/coinbase/src/main/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandler.kt @@ -130,6 +130,7 @@ internal object CoinbaseOnRampScripts { } internal class CoinbaseOnRampEventHandler( + private val orderId: String, private val startMark: TimeMark, private val webViewVersion: String, private val gmsVersion: String, @@ -185,6 +186,7 @@ internal class CoinbaseOnRampEventHandler( error = if (isFirstError) error else null, type = TraceType.Error, metadata = { + "orderId" to orderId "webViewVersion" to webViewVersion "gmsVersion" to gmsVersion if (errorCode == CoinbaseOnRampWebError.CODE_GOOGLE_PAY_BUTTON_NOT_FOUND && data != null) { diff --git a/apps/flipcash/shared/onramp/coinbase/src/test/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandlerTest.kt b/apps/flipcash/shared/onramp/coinbase/src/test/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandlerTest.kt index a4e55d528..2ed1bd32e 100644 --- a/apps/flipcash/shared/onramp/coinbase/src/test/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandlerTest.kt +++ b/apps/flipcash/shared/onramp/coinbase/src/test/kotlin/com/flipcash/app/onramp/internal/CoinbaseOnRampEventHandlerTest.kt @@ -50,6 +50,7 @@ class CoinbaseOnRampEventHandlerTest { private var lastError: CoinbaseOnRampWebError? = null private val handler = CoinbaseOnRampEventHandler( + orderId = "test-order-id", startMark = TimeSource.Monotonic.markNow(), webViewVersion = "1.0.0", gmsVersion = "24.0.0",