From 3f66ed59f0f8731d1853faae3d683bd20afc3959 Mon Sep 17 00:00:00 2001 From: Lizaveta Miasayedava Date: Mon, 16 Mar 2026 17:33:02 +0000 Subject: [PATCH] fix: remove lastActionType from execution state and derive last action from actions array --- packages/sdk/src/core/BaseStepExecutor.ts | 5 ++--- packages/sdk/src/core/StatusManager.ts | 4 ---- packages/sdk/src/core/StatusManager.unit.spec.ts | 2 -- packages/sdk/src/core/prepareRestart.ts | 2 -- packages/sdk/src/types/core.ts | 1 - 5 files changed, 2 insertions(+), 12 deletions(-) diff --git a/packages/sdk/src/core/BaseStepExecutor.ts b/packages/sdk/src/core/BaseStepExecutor.ts index 067a47a1..a78396ec 100644 --- a/packages/sdk/src/core/BaseStepExecutor.ts +++ b/packages/sdk/src/core/BaseStepExecutor.ts @@ -102,9 +102,8 @@ export abstract class BaseStepExecutor implements StepExecutor { return step } catch (error: any) { - const action = step.execution?.lastActionType - ? this.statusManager.findAction(step, step.execution.lastActionType) - : undefined + // Derive failing action from last in execution.actions + const action = step.execution?.actions?.at(-1) const parsed = await this.parseErrors(error, step, action, retryParams) if (!(parsed instanceof ExecuteStepRetryError)) { if (action) { diff --git a/packages/sdk/src/core/StatusManager.ts b/packages/sdk/src/core/StatusManager.ts index 0ee3d83c..b29b011b 100644 --- a/packages/sdk/src/core/StatusManager.ts +++ b/packages/sdk/src/core/StatusManager.ts @@ -47,7 +47,6 @@ export class StatusManager { step.execution.startedAt = Date.now() step.execution.status = 'PENDING' step.execution.signedAt = undefined - step.execution.lastActionType = undefined step.execution.error = undefined this.updateStepInRoute(step) } @@ -122,7 +121,6 @@ export class StatusManager { } step.execution.actions.push(newAction) - step.execution.lastActionType = type this.updateStepInRoute(step) return newAction } @@ -201,8 +199,6 @@ export class StatusManager { break } - step.execution.lastActionType = type - currentAction.status = status currentAction.message = getActionMessage(type, status) // set extra parameters or overwrite the standard params set in the switch statement diff --git a/packages/sdk/src/core/StatusManager.unit.spec.ts b/packages/sdk/src/core/StatusManager.unit.spec.ts index 471378e5..291553fc 100644 --- a/packages/sdk/src/core/StatusManager.unit.spec.ts +++ b/packages/sdk/src/core/StatusManager.unit.spec.ts @@ -188,7 +188,6 @@ describe('StatusManager', () => { const updatedExecution = Object.assign({}, step.execution, { actions: [...step.execution!.actions, action], - lastActionType: 'CROSS_CHAIN', }) const updatedStep = Object.assign({}, step, { @@ -249,7 +248,6 @@ describe('StatusManager', () => { status === 'DONE' || status === 'CANCELLED' const updatedExecution = Object.assign({}, step.execution, { actions: [step.execution!.actions[0], action], - lastActionType: 'SWAP', status: notUpdateableStatus ? step.execution!.status : (status as ExecutionStatus), diff --git a/packages/sdk/src/core/prepareRestart.ts b/packages/sdk/src/core/prepareRestart.ts index 46118576..93ec51a6 100644 --- a/packages/sdk/src/core/prepareRestart.ts +++ b/packages/sdk/src/core/prepareRestart.ts @@ -22,8 +22,6 @@ export const prepareRestart = (route: RouteExtended) => { // If no tx hash exists, reset the actions array step.execution.actions = [] } - // Reset the last action type - step.execution.lastActionType = undefined } step.transactionRequest = undefined } diff --git a/packages/sdk/src/types/core.ts b/packages/sdk/src/types/core.ts index 932f0399..e986ec5e 100644 --- a/packages/sdk/src/types/core.ts +++ b/packages/sdk/src/types/core.ts @@ -253,7 +253,6 @@ export interface Execution { signedAt?: number status: ExecutionStatus actions: Array - lastActionType?: ExecutionActionType fromAmount?: string toAmount?: string toToken?: Token