From c62c78b03ba9bd4a0b88b894a609f5e3c31df7ee Mon Sep 17 00:00:00 2001 From: Rui Date: Wed, 23 Oct 2024 18:46:31 -0700 Subject: [PATCH] Fix Skip transfer status --- .../processor/router/skip/SkipTrackProcessor.kt | 7 +++++-- .../state/v2/supervisor/OnboardingSupervisor.kt | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/commonMain/kotlin/exchange.dydx.abacus/processor/router/skip/SkipTrackProcessor.kt b/src/commonMain/kotlin/exchange.dydx.abacus/processor/router/skip/SkipTrackProcessor.kt index b09ef2a68..8a9603fab 100644 --- a/src/commonMain/kotlin/exchange.dydx.abacus/processor/router/skip/SkipTrackProcessor.kt +++ b/src/commonMain/kotlin/exchange.dydx.abacus/processor/router/skip/SkipTrackProcessor.kt @@ -12,8 +12,11 @@ internal class SkipTrackProcessor( payload: Map ): Map? { val modified = existing?.mutable() ?: mutableMapOf() - val txHash = parser.asString(payload.get("tx_hash")) ?: return modified - modified[txHash] = true + var txHash = parser.asString(payload.get("tx_hash")) ?: return modified + if (!txHash.startsWith("0x")) { + txHash = "0x$txHash" + } + modified[txHash.lowercase()] = true return modified } } diff --git a/src/commonMain/kotlin/exchange.dydx.abacus/state/v2/supervisor/OnboardingSupervisor.kt b/src/commonMain/kotlin/exchange.dydx.abacus/state/v2/supervisor/OnboardingSupervisor.kt index a1e18753b..fa4d43183 100644 --- a/src/commonMain/kotlin/exchange.dydx.abacus/state/v2/supervisor/OnboardingSupervisor.kt +++ b/src/commonMain/kotlin/exchange.dydx.abacus/state/v2/supervisor/OnboardingSupervisor.kt @@ -821,6 +821,7 @@ internal class OnboardingSupervisor( hash: String, fromChainId: String?, ) { + val hash = hash.lowercase() val oldState = stateMachine.state // If transfer is not yet tracked, must track first before querying status val isTracked = oldState?.trackStatuses?.get(hash) == true @@ -855,6 +856,10 @@ internal class OnboardingSupervisor( helper.post(url, null, body.toJsonPrettyPrint()) { _, response, httpCode, _ -> if (response != null) { update(stateMachine.routerTrack(response), oldState) + val isTracked = oldState?.trackStatuses?.get(hash) == true + if (isTracked) { + fetchTransferStatusSkip(hash, fromChainId) + } } } }