From 85d53b632e4184d7f598a7cf3201de5f756724b2 Mon Sep 17 00:00:00 2001 From: Aleksander Date: Fri, 25 Apr 2025 11:31:17 +0200 Subject: [PATCH 1/2] Extract swap errors from wallet simulation & onchain tx logs --- src/store/sagas/swap.ts | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/store/sagas/swap.ts b/src/store/sagas/swap.ts index 6392b7fe0..f3743564b 100644 --- a/src/store/sagas/swap.ts +++ b/src/store/sagas/swap.ts @@ -448,6 +448,14 @@ export function* handleSwapWithETH(): Generator { } catch (e: unknown) { const error = ensureError(e) console.log(error) + try { + const errorCode = error.message.split('Error Number:')[1].split('.')[0].trim() + console.log('ERROR CODE FROM SIMULATION:', errorCode) + } catch (e: unknown) { + console.log("Couldn't parse error code from simulation, on", e) + const error = ensureError(e) + console.log('Should be approval denied:', error) + } yield put(swapActions.setSwapSuccess(false)) @@ -1467,10 +1475,24 @@ export function* handleSwap(): Generator { txid }) ) - const txDetails = yield* call([connection, connection.getParsedTransaction], txid, { - maxSupportedTransactionVersion: 0 - }) + const txDetails = yield* call( + [connection, connection.getParsedTransaction], + '34tn3TQREevaHnq7P9kezEUMfP6Cvvm5iqajE3qJYV7PdG9juZy5hGcL3D1SGPJdrhZX9NNWtpithUKhissueRsJ', + { + maxSupportedTransactionVersion: 0 + } + ) + console.log(txDetails) + if (txDetails) { + if (txDetails.meta?.err) { + console.log('Error in transaction:', txDetails.meta.err) + if (txDetails.meta.logMessages) { + const errorLog = txDetails.meta.logMessages.find(log => log.includes('Error Number:')) + const errorCode = errorLog?.split('Error Number:')[1].split('.')[0].trim() + console.log('ERROR CODE ONCHAIN:', errorCode) + } + } const meta = txDetails.meta if (meta?.preTokenBalances && meta.postTokenBalances) { const accountXPredicate = entry => @@ -1557,7 +1579,14 @@ export function* handleSwap(): Generator { yield put(snackbarsActions.remove(loaderSwappingTokens)) } catch (e: unknown) { const error = ensureError(e) - console.log(error) + try { + const errorCode = error.message.split('Error Number:')[1].split('.')[0].trim() + console.log('ERROR CODE FROM SIMULATION:', errorCode) + } catch (e: unknown) { + console.log("Couldn't parse error code from simulation, on", e) + const error = ensureError(e) + console.log('Should be approval denied:', error) + } yield put(swapActions.setSwapSuccess(false)) From 099c62453a5de5f3b82d3fe4aa998bbb557b1e36 Mon Sep 17 00:00:00 2001 From: Aleksander Date: Fri, 25 Apr 2025 11:41:52 +0200 Subject: [PATCH 2/2] Add maxSupportedTransactioNVersion parameter for handling swap with eth --- src/store/sagas/swap.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/store/sagas/swap.ts b/src/store/sagas/swap.ts index 6392b7fe0..ecea48700 100644 --- a/src/store/sagas/swap.ts +++ b/src/store/sagas/swap.ts @@ -333,7 +333,9 @@ export function* handleSwapWithETH(): Generator { }) ) - const txDetails = yield* call([connection, connection.getParsedTransaction], initialTxid) + const txDetails = yield* call([connection, connection.getParsedTransaction], initialTxid, { + maxSupportedTransactionVersion: 0 + }) if (txDetails) { const meta = txDetails.meta