@lifi/sdk 4.0.0-alpha.13 → 4.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core/BaseStepExecutionTask.d.ts +5 -0
- package/dist/cjs/core/BaseStepExecutionTask.js +10 -0
- package/dist/cjs/core/BaseStepExecutionTask.js.map +1 -0
- package/dist/cjs/core/BaseStepExecutor.d.ts +7 -3
- package/dist/cjs/core/BaseStepExecutor.js +24 -0
- package/dist/cjs/core/BaseStepExecutor.js.map +1 -1
- package/dist/cjs/core/StatusManager.d.ts +6 -3
- package/dist/cjs/core/StatusManager.js +21 -17
- package/dist/cjs/core/StatusManager.js.map +1 -1
- package/dist/cjs/core/TaskPipeline.d.ts +7 -0
- package/dist/cjs/core/TaskPipeline.js +46 -0
- package/dist/cjs/core/TaskPipeline.js.map +1 -0
- package/dist/cjs/core/actionMessages.js +19 -3
- package/dist/cjs/core/actionMessages.js.map +1 -1
- package/dist/cjs/core/execution.js +13 -1
- package/dist/cjs/core/execution.js.map +1 -1
- package/dist/cjs/core/prepareRestart.js +3 -3
- package/dist/cjs/core/prepareRestart.js.map +1 -1
- package/dist/cjs/core/tasks/CheckBalanceTask.d.ts +5 -0
- package/dist/cjs/core/tasks/CheckBalanceTask.js +25 -0
- package/dist/cjs/core/tasks/CheckBalanceTask.js.map +1 -0
- package/dist/cjs/core/tasks/PrepareTransactionTask.d.ts +5 -0
- package/dist/cjs/core/tasks/PrepareTransactionTask.js +36 -0
- package/dist/cjs/core/tasks/PrepareTransactionTask.js.map +1 -0
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.d.ts +8 -0
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js +73 -0
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
- package/dist/cjs/core/{checkBalance.d.ts → tasks/helpers/checkBalance.d.ts} +1 -1
- package/dist/cjs/core/{checkBalance.js → tasks/helpers/checkBalance.js} +4 -4
- package/dist/cjs/core/tasks/helpers/checkBalance.js.map +1 -0
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.d.ts +2 -0
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js +30 -0
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
- package/dist/cjs/core/{stepComparison.d.ts → tasks/helpers/stepComparison.d.ts} +2 -2
- package/dist/cjs/core/{stepComparison.js → tasks/helpers/stepComparison.js} +3 -3
- package/dist/cjs/core/tasks/helpers/stepComparison.js.map +1 -0
- package/dist/cjs/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts} +2 -2
- package/dist/cjs/core/{waitForTransactionStatus.js → tasks/helpers/waitForTransactionStatus.js} +8 -6
- package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
- package/dist/cjs/errors/constants.d.ts +2 -1
- package/dist/cjs/errors/constants.js +1 -0
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/errors/errors.d.ts +5 -0
- package/dist/cjs/errors/errors.js +9 -1
- package/dist/cjs/errors/errors.js.map +1 -1
- package/dist/cjs/index.d.ts +12 -5
- package/dist/cjs/index.js +21 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/core.d.ts +11 -8
- package/dist/cjs/types/execution.d.ts +25 -0
- package/dist/cjs/types/execution.js +3 -0
- package/dist/cjs/types/execution.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/core/BaseStepExecutionTask.d.ts +5 -0
- package/dist/esm/core/BaseStepExecutionTask.js +6 -0
- package/dist/esm/core/BaseStepExecutionTask.js.map +1 -0
- package/dist/esm/core/BaseStepExecutor.d.ts +7 -3
- package/dist/esm/core/BaseStepExecutor.js +24 -0
- package/dist/esm/core/BaseStepExecutor.js.map +1 -1
- package/dist/esm/core/StatusManager.d.ts +17 -6
- package/dist/esm/core/StatusManager.js +32 -20
- package/dist/esm/core/StatusManager.js.map +1 -1
- package/dist/esm/core/TaskPipeline.d.ts +7 -0
- package/dist/esm/core/TaskPipeline.js +42 -0
- package/dist/esm/core/TaskPipeline.js.map +1 -0
- package/dist/esm/core/actionMessages.js +19 -3
- package/dist/esm/core/actionMessages.js.map +1 -1
- package/dist/esm/core/execution.js +14 -3
- package/dist/esm/core/execution.js.map +1 -1
- package/dist/esm/core/prepareRestart.js +4 -3
- package/dist/esm/core/prepareRestart.js.map +1 -1
- package/dist/esm/core/tasks/CheckBalanceTask.d.ts +5 -0
- package/dist/esm/core/tasks/CheckBalanceTask.js +21 -0
- package/dist/esm/core/tasks/CheckBalanceTask.js.map +1 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.d.ts +5 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.js +32 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.js.map +1 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts +8 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.js +74 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
- package/dist/esm/core/{checkBalance.d.ts → tasks/helpers/checkBalance.d.ts} +1 -1
- package/dist/esm/core/{checkBalance.js → tasks/helpers/checkBalance.js} +4 -4
- package/dist/esm/core/tasks/helpers/checkBalance.js.map +1 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts +2 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.js +26 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
- package/dist/esm/core/{stepComparison.d.ts → tasks/helpers/stepComparison.d.ts} +2 -2
- package/dist/esm/core/{stepComparison.js → tasks/helpers/stepComparison.js} +3 -3
- package/dist/esm/core/tasks/helpers/stepComparison.js.map +1 -0
- package/dist/esm/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts} +2 -2
- package/dist/esm/core/{waitForTransactionStatus.js → tasks/helpers/waitForTransactionStatus.js} +8 -6
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
- package/dist/esm/errors/constants.d.ts +2 -1
- package/dist/esm/errors/constants.js +1 -0
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/errors/errors.d.ts +10 -0
- package/dist/esm/errors/errors.js +12 -0
- package/dist/esm/errors/errors.js.map +1 -1
- package/dist/esm/index.d.ts +12 -5
- package/dist/esm/index.js +10 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/core.d.ts +15 -8
- package/dist/esm/types/execution.d.ts +26 -0
- package/dist/esm/types/execution.js +2 -0
- package/dist/esm/types/execution.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/core/BaseStepExecutionTask.d.ts +6 -0
- package/dist/types/core/BaseStepExecutionTask.d.ts.map +1 -0
- package/dist/types/core/BaseStepExecutor.d.ts +7 -3
- package/dist/types/core/BaseStepExecutor.d.ts.map +1 -1
- package/dist/types/core/StatusManager.d.ts +17 -6
- package/dist/types/core/StatusManager.d.ts.map +1 -1
- package/dist/types/core/TaskPipeline.d.ts +8 -0
- package/dist/types/core/TaskPipeline.d.ts.map +1 -0
- package/dist/types/core/actionMessages.d.ts.map +1 -1
- package/dist/types/core/execution.d.ts.map +1 -1
- package/dist/types/core/prepareRestart.d.ts.map +1 -1
- package/dist/types/core/tasks/CheckBalanceTask.d.ts +6 -0
- package/dist/types/core/tasks/CheckBalanceTask.d.ts.map +1 -0
- package/dist/types/core/tasks/PrepareTransactionTask.d.ts +6 -0
- package/dist/types/core/tasks/PrepareTransactionTask.d.ts.map +1 -0
- package/dist/types/core/tasks/WaitForTransactionStatusTask.d.ts +9 -0
- package/dist/types/core/tasks/WaitForTransactionStatusTask.d.ts.map +1 -0
- package/dist/types/core/{checkBalance.d.ts → tasks/helpers/checkBalance.d.ts} +1 -1
- package/dist/types/core/tasks/helpers/checkBalance.d.ts.map +1 -0
- package/dist/types/core/tasks/helpers/getTransactionRequestData.d.ts +3 -0
- package/dist/types/core/tasks/helpers/getTransactionRequestData.d.ts.map +1 -0
- package/dist/types/core/{stepComparison.d.ts → tasks/helpers/stepComparison.d.ts} +2 -2
- package/dist/types/core/tasks/helpers/stepComparison.d.ts.map +1 -0
- package/dist/types/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts} +2 -2
- package/dist/types/core/tasks/helpers/waitForTransactionStatus.d.ts.map +1 -0
- package/dist/types/errors/constants.d.ts +2 -1
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/errors/errors.d.ts +10 -0
- package/dist/types/errors/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +12 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/core.d.ts +15 -8
- package/dist/types/types/core.d.ts.map +1 -1
- package/dist/types/types/execution.d.ts +27 -0
- package/dist/types/types/execution.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/core/BaseStepExecutionTask.ts +9 -0
- package/src/core/BaseStepExecutor.ts +52 -2
- package/src/core/StatusManager.ts +40 -24
- package/src/core/TaskPipeline.ts +47 -0
- package/src/core/actionMessages.ts +20 -3
- package/src/core/execution.ts +17 -3
- package/src/core/prepareRestart.ts +4 -3
- package/src/core/tasks/CheckBalanceTask.ts +28 -0
- package/src/core/tasks/PrepareTransactionTask.ts +62 -0
- package/src/core/tasks/WaitForTransactionStatusTask.ts +114 -0
- package/src/core/{checkBalance.ts → tasks/helpers/checkBalance.ts} +5 -5
- package/src/core/tasks/helpers/getTransactionRequestData.ts +47 -0
- package/src/core/{stepComparison.ts → tasks/helpers/stepComparison.ts} +5 -5
- package/src/core/{waitForTransactionStatus.ts → tasks/helpers/waitForTransactionStatus.ts} +10 -8
- package/src/errors/constants.ts +1 -0
- package/src/errors/errors.ts +24 -0
- package/src/index.ts +17 -3
- package/src/types/core.ts +18 -12
- package/src/types/execution.ts +40 -0
- package/src/version.ts +1 -1
- package/dist/cjs/core/checkBalance.js.map +0 -1
- package/dist/cjs/core/stepComparison.js.map +0 -1
- package/dist/cjs/core/waitForDestinationChainTransaction.d.ts +0 -4
- package/dist/cjs/core/waitForDestinationChainTransaction.js +0 -68
- package/dist/cjs/core/waitForDestinationChainTransaction.js.map +0 -1
- package/dist/cjs/core/waitForTransactionStatus.js.map +0 -1
- package/dist/esm/core/checkBalance.js.map +0 -1
- package/dist/esm/core/stepComparison.js.map +0 -1
- package/dist/esm/core/waitForDestinationChainTransaction.d.ts +0 -4
- package/dist/esm/core/waitForDestinationChainTransaction.js +0 -70
- package/dist/esm/core/waitForDestinationChainTransaction.js.map +0 -1
- package/dist/esm/core/waitForTransactionStatus.js.map +0 -1
- package/dist/types/core/checkBalance.d.ts.map +0 -1
- package/dist/types/core/stepComparison.d.ts.map +0 -1
- package/dist/types/core/waitForDestinationChainTransaction.d.ts +0 -5
- package/dist/types/core/waitForDestinationChainTransaction.d.ts.map +0 -1
- package/dist/types/core/waitForTransactionStatus.d.ts.map +0 -1
- package/src/core/waitForDestinationChainTransaction.ts +0 -108
|
@@ -37,21 +37,17 @@ export class StatusManager {
|
|
|
37
37
|
/**
|
|
38
38
|
* Updates the execution object of a Step.
|
|
39
39
|
* @param step The current step in execution
|
|
40
|
-
* @param status The status for the execution
|
|
41
40
|
* @param execution Optional. Information about received tokens
|
|
42
41
|
* @returns The step with the updated execution object
|
|
43
42
|
*/
|
|
44
|
-
updateExecution(step,
|
|
43
|
+
updateExecution(step, execution) {
|
|
45
44
|
if (!step.execution) {
|
|
46
45
|
throw Error("Can't update empty execution.");
|
|
47
46
|
}
|
|
48
|
-
step.execution
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
...execution,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
47
|
+
step.execution = {
|
|
48
|
+
...step.execution,
|
|
49
|
+
...execution,
|
|
50
|
+
};
|
|
55
51
|
this.updateStepInRoute(step);
|
|
56
52
|
return step;
|
|
57
53
|
}
|
|
@@ -75,27 +71,43 @@ export class StatusManager {
|
|
|
75
71
|
}
|
|
76
72
|
/**
|
|
77
73
|
* Create and push a new action into the execution.
|
|
74
|
+
* Caller is responsible for ensuring an action of this type does not already exist (e.g. after findAction returned undefined).
|
|
78
75
|
* @param step The step that should contain the new action.
|
|
79
|
-
* @param type Type of the action.
|
|
76
|
+
* @param type Type of the action.
|
|
80
77
|
* @param chainId Chain Id of the action.
|
|
81
78
|
* @param status By default created action is set to the STARTED status. We can override new action with the needed status.
|
|
82
|
-
* @returns
|
|
79
|
+
* @returns The created action.
|
|
83
80
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return action;
|
|
81
|
+
createAction = ({ step, type, chainId, status, }) => {
|
|
82
|
+
if (!step.execution) {
|
|
83
|
+
throw new Error("Execution hasn't been initialized.");
|
|
88
84
|
}
|
|
89
85
|
const newAction = {
|
|
90
|
-
type
|
|
86
|
+
type,
|
|
91
87
|
message: getActionMessage(type, status ?? 'STARTED'),
|
|
92
88
|
status: status ?? 'STARTED',
|
|
93
|
-
chainId
|
|
89
|
+
chainId,
|
|
94
90
|
};
|
|
95
91
|
step.execution.actions.push(newAction);
|
|
92
|
+
step.execution.lastActionType = type;
|
|
96
93
|
this.updateStepInRoute(step);
|
|
97
94
|
return newAction;
|
|
98
95
|
};
|
|
96
|
+
/**
|
|
97
|
+
* Find an existing action by type, or create and push a new one if none exists.
|
|
98
|
+
* @param step The step that should contain the action.
|
|
99
|
+
* @param type Type of the action. Used to identify already existing actions.
|
|
100
|
+
* @param chainId Chain Id of the action (used when creating).
|
|
101
|
+
* @param status By default created action is set to the STARTED status. We can override new action with the needed status.
|
|
102
|
+
* @returns The found or newly created action.
|
|
103
|
+
*/
|
|
104
|
+
findOrCreateAction = ({ step, type, chainId, status, }) => {
|
|
105
|
+
const action = this.findAction(step, type, status);
|
|
106
|
+
if (action) {
|
|
107
|
+
return action;
|
|
108
|
+
}
|
|
109
|
+
return this.createAction({ step, type, chainId, status });
|
|
110
|
+
};
|
|
99
111
|
/**
|
|
100
112
|
* Update an action object.
|
|
101
113
|
* @param step The step where the action should be updated
|
|
@@ -134,13 +146,13 @@ export class StatusManager {
|
|
|
134
146
|
default:
|
|
135
147
|
break;
|
|
136
148
|
}
|
|
149
|
+
step.execution.lastActionType = type;
|
|
137
150
|
currentAction.status = status;
|
|
138
151
|
currentAction.message = getActionMessage(type, status);
|
|
139
152
|
// set extra parameters or overwrite the standard params set in the switch statement
|
|
140
153
|
if (params) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
154
|
+
const { signedAt: _signedAt, ...rest } = params;
|
|
155
|
+
Object.assign(currentAction, rest);
|
|
144
156
|
}
|
|
145
157
|
// Sort actions, the ones with DONE status go first
|
|
146
158
|
step.execution.actions = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusManager.js","sourceRoot":"","sources":["../../../src/core/StatusManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StatusManager.js","sourceRoot":"","sources":["../../../src/core/StatusManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StepExecutorContext, TaskResult } from '../types/execution.js';
|
|
2
|
+
import type { BaseStepExecutionTask } from './BaseStepExecutionTask.js';
|
|
3
|
+
export declare class TaskPipeline {
|
|
4
|
+
private readonly tasks;
|
|
5
|
+
constructor(tasks: BaseStepExecutionTask[]);
|
|
6
|
+
run(context: StepExecutorContext): Promise<TaskResult>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ExecuteStepRetryError } from '../errors/errors.js';
|
|
2
|
+
export class TaskPipeline {
|
|
3
|
+
tasks;
|
|
4
|
+
constructor(tasks) {
|
|
5
|
+
this.tasks = tasks;
|
|
6
|
+
}
|
|
7
|
+
async run(context) {
|
|
8
|
+
const { statusManager, step, parseErrors } = context;
|
|
9
|
+
for (const task of this.tasks) {
|
|
10
|
+
try {
|
|
11
|
+
const shouldRun = await task.shouldRun(context);
|
|
12
|
+
if (!shouldRun) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const result = await task.run(context);
|
|
16
|
+
if (result.status === 'PAUSED') {
|
|
17
|
+
return { status: 'PAUSED' };
|
|
18
|
+
}
|
|
19
|
+
if (result.context && typeof result.context === 'object') {
|
|
20
|
+
Object.assign(context, result.context);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
const action = step?.execution?.lastActionType
|
|
25
|
+
? statusManager.findAction(step, step?.execution?.lastActionType)
|
|
26
|
+
: undefined;
|
|
27
|
+
const parsed = await parseErrors(error, step, action);
|
|
28
|
+
if (!(parsed instanceof ExecuteStepRetryError) && action) {
|
|
29
|
+
statusManager.updateAction(step, action.type, 'FAILED', {
|
|
30
|
+
error: {
|
|
31
|
+
message: parsed.cause?.message,
|
|
32
|
+
code: parsed.code,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
throw parsed;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return { status: 'COMPLETED' };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=TaskPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskPipeline.js","sourceRoot":"","sources":["../../../src/core/TaskPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAI3D,MAAM,OAAO,YAAY;IACN,KAAK,CAAyB;IAE/C,YAAY,KAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAA4B;QACpC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAEpD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAQ;gBACV,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;gBAC7B,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,cAAc;oBAC5C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC;oBACjE,CAAC,CAAC,SAAS,CAAA;gBACb,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACrD,IAAI,CAAC,CAAC,MAAM,YAAY,qBAAqB,CAAC,IAAI,MAAM,EAAE,CAAC;oBACzD,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;wBACtD,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO;4BAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;yBAClB;qBACF,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,MAAM,CAAA;YACd,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAChC,CAAC;CACF"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
const actionMessages = {
|
|
2
|
-
|
|
2
|
+
CHECK_ALLOWANCE: {
|
|
3
|
+
STARTED: 'Checking token allowance',
|
|
4
|
+
PENDING: 'Waiting for token allowance check',
|
|
5
|
+
DONE: 'Token allowance checked',
|
|
6
|
+
},
|
|
7
|
+
RESET_ALLOWANCE: {
|
|
8
|
+
STARTED: 'Resetting token allowance',
|
|
9
|
+
RESET_REQUIRED: 'Resetting token allowance',
|
|
10
|
+
PENDING: 'Waiting for token allowance reset',
|
|
11
|
+
DONE: 'Token allowance reset',
|
|
12
|
+
},
|
|
13
|
+
SET_ALLOWANCE: {
|
|
3
14
|
STARTED: 'Setting token allowance',
|
|
4
15
|
ACTION_REQUIRED: 'Set token allowance',
|
|
5
|
-
RESET_REQUIRED: 'Resetting token allowance',
|
|
6
|
-
MESSAGE_REQUIRED: 'Sign token allowance message',
|
|
7
16
|
PENDING: 'Waiting for token allowance',
|
|
8
17
|
DONE: 'Token allowance set',
|
|
9
18
|
},
|
|
@@ -22,6 +31,7 @@ const actionMessages = {
|
|
|
22
31
|
DONE: 'Bridge transaction confirmed',
|
|
23
32
|
},
|
|
24
33
|
RECEIVING_CHAIN: {
|
|
34
|
+
STARTED: 'Waiting for destination chain',
|
|
25
35
|
PENDING: 'Waiting for destination chain',
|
|
26
36
|
DONE: 'Bridge completed',
|
|
27
37
|
},
|
|
@@ -31,6 +41,12 @@ const actionMessages = {
|
|
|
31
41
|
PENDING: 'Waiting for permit message',
|
|
32
42
|
DONE: 'Permit message signed',
|
|
33
43
|
},
|
|
44
|
+
NATIVE_PERMIT: {
|
|
45
|
+
STARTED: 'Preparing transaction',
|
|
46
|
+
ACTION_REQUIRED: 'Sign permit message',
|
|
47
|
+
PENDING: 'Waiting for permit message',
|
|
48
|
+
DONE: 'Permit message signed',
|
|
49
|
+
},
|
|
34
50
|
};
|
|
35
51
|
const substatusMessages = {
|
|
36
52
|
PENDING: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionMessages.js","sourceRoot":"","sources":["../../../src/core/actionMessages.ts"],"names":[],"mappings":"AAMA,MAAM,cAAc,GAGhB;IACF,eAAe,EAAE;QACf,OAAO,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"actionMessages.js","sourceRoot":"","sources":["../../../src/core/actionMessages.ts"],"names":[],"mappings":"AAMA,MAAM,cAAc,GAGhB;IACF,eAAe,EAAE;QACf,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,mCAAmC;QAC5C,IAAI,EAAE,yBAAyB;KAChC;IACD,eAAe,EAAE;QACf,OAAO,EAAE,2BAA2B;QACpC,cAAc,EAAE,2BAA2B;QAC3C,OAAO,EAAE,mCAAmC;QAC5C,IAAI,EAAE,uBAAuB;KAC9B;IACD,aAAa,EAAE;QACb,OAAO,EAAE,yBAAyB;QAClC,eAAe,EAAE,qBAAqB;QACtC,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,qBAAqB;KAC5B;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,4BAA4B;QACrC,eAAe,EAAE,uBAAuB;QACxC,gBAAgB,EAAE,mBAAmB;QACrC,OAAO,EAAE,8BAA8B;QACvC,IAAI,EAAE,gBAAgB;KACvB;IACD,WAAW,EAAE;QACX,OAAO,EAAE,8BAA8B;QACvC,eAAe,EAAE,yBAAyB;QAC1C,gBAAgB,EAAE,qBAAqB;QACvC,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE,8BAA8B;KACrC;IACD,eAAe,EAAE;QACf,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,kBAAkB;KACzB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,uBAAuB;QAChC,eAAe,EAAE,qBAAqB;QACtC,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,uBAAuB;KAC9B;IACD,aAAa,EAAE;QACb,OAAO,EAAE,uBAAuB;QAChC,eAAe,EAAE,qBAAqB;QACtC,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,uBAAuB;KAC9B;CACF,CAAA;AAED,MAAM,iBAAiB,GAGnB;IACF,OAAO,EAAE;QACP,oBAAoB,EAAE,kDAAkD;QACxE,mBAAmB,EAAE,+CAA+C;QACpE,aAAa,EACX,mFAAmF;QACrF,yBAAyB,EACvB,kHAAkH;QACpH,4BAA4B,EAC1B,4GAA4G;KAC/G;IACD,IAAI,EAAE;QACJ,OAAO,EACL,uEAAuE;QACzE,QAAQ,EAAE,iDAAiD;QAC3D,SAAS,EAAE,2BAA2B;KACvC;IACD,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACd,CAAA;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAyB,EACzB,MAA6B;IAE7B,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,SAAqB;IAErB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAA;IACpD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LiFiErrorCode } from '../errors/constants.js';
|
|
2
|
-
import { ProviderError } from '../errors/errors.js';
|
|
2
|
+
import { ExecuteStepRetryError, ProviderError } from '../errors/errors.js';
|
|
3
3
|
import { executionState } from './executionState.js';
|
|
4
4
|
import { prepareRestart } from './prepareRestart.js';
|
|
5
5
|
/**
|
|
@@ -64,7 +64,6 @@ const executeSteps = async (client, route) => {
|
|
|
64
64
|
const step = route.steps[index];
|
|
65
65
|
const previousStep = route.steps[index - 1];
|
|
66
66
|
// Check if the step is already done
|
|
67
|
-
//
|
|
68
67
|
if (step.execution?.status === 'DONE') {
|
|
69
68
|
continue;
|
|
70
69
|
}
|
|
@@ -94,7 +93,19 @@ const executeSteps = async (client, route) => {
|
|
|
94
93
|
if (execution.executionOptions) {
|
|
95
94
|
updateRouteExecution(route, execution.executionOptions);
|
|
96
95
|
}
|
|
97
|
-
|
|
96
|
+
let executedStep;
|
|
97
|
+
try {
|
|
98
|
+
executedStep = await stepExecutor.executeStep(client, step);
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
if (e instanceof ExecuteStepRetryError) {
|
|
102
|
+
step.execution = undefined;
|
|
103
|
+
executedStep = await stepExecutor.executeStep(client, step, e.retryParams);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw e;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
98
109
|
// We may reach this point if user interaction isn't allowed. We want to stop execution until we resume it
|
|
99
110
|
if (executedStep.execution?.status !== 'DONE') {
|
|
100
111
|
stopRouteExecution(route);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/core/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/core/execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,8 @@ export const prepareRestart = (route) => {
|
|
|
3
3
|
const step = route.steps[index];
|
|
4
4
|
if (step.execution) {
|
|
5
5
|
// Find the index of the last action that has tx hash, taskId, or signed messages
|
|
6
|
-
const lastValidIndex = step.execution.actions.findLastIndex((action) => (
|
|
7
|
-
!!action.taskId
|
|
8
|
-
!!action.signedTypedData?.length) &&
|
|
6
|
+
const lastValidIndex = step.execution.actions.findLastIndex((action) => ['SWAP', 'CROSS_CHAIN', 'RECEIVING_CHAIN'].includes(action.type) &&
|
|
7
|
+
(!!action.txHash || !!action.taskId) &&
|
|
9
8
|
action.status !== 'FAILED');
|
|
10
9
|
// Keep all actions up to the one with tx hash
|
|
11
10
|
if (lastValidIndex >= 0) {
|
|
@@ -15,6 +14,8 @@ export const prepareRestart = (route) => {
|
|
|
15
14
|
// If no tx hash exists, reset the actions array
|
|
16
15
|
step.execution.actions = [];
|
|
17
16
|
}
|
|
17
|
+
// Reset the last action type
|
|
18
|
+
step.execution.lastActionType = undefined;
|
|
18
19
|
}
|
|
19
20
|
step.transactionRequest = undefined;
|
|
20
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../../src/core/prepareRestart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;IACrD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,iFAAiF;YACjF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CACzD,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,CAAC,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../../src/core/prepareRestart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;IACrD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,iFAAiF;YACjF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CACzD,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAC7B,CAAA;YAED,8CAA8C;YAC9C,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CACnD,CAAC,EACD,cAAc,GAAG,CAAC,CACnB,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;YAC7B,CAAC;YACD,6BAA6B;YAC7B,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,CAAA;QAC3C,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;IACrC,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StepExecutorContext, TaskResult } from '../../types/execution.js';
|
|
2
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js';
|
|
3
|
+
export declare class CheckBalanceTask extends BaseStepExecutionTask {
|
|
4
|
+
run(context: StepExecutorContext): Promise<TaskResult>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LiFiErrorCode } from '../../errors/constants.js';
|
|
2
|
+
import { TransactionError } from '../../errors/errors.js';
|
|
3
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js';
|
|
4
|
+
import { checkBalance } from './helpers/checkBalance.js';
|
|
5
|
+
export class CheckBalanceTask extends BaseStepExecutionTask {
|
|
6
|
+
async run(context) {
|
|
7
|
+
const { client, step, statusManager, isBridgeExecution } = context;
|
|
8
|
+
statusManager.findOrCreateAction({
|
|
9
|
+
step,
|
|
10
|
+
type: isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP',
|
|
11
|
+
chainId: step.action.fromChainId,
|
|
12
|
+
});
|
|
13
|
+
const walletAddress = step.action.fromAddress;
|
|
14
|
+
if (!walletAddress) {
|
|
15
|
+
throw new TransactionError(LiFiErrorCode.InternalError, 'The wallet address is undefined.');
|
|
16
|
+
}
|
|
17
|
+
await checkBalance(client, walletAddress, step);
|
|
18
|
+
return { status: 'COMPLETED' };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=CheckBalanceTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckBalanceTask.js","sourceRoot":"","sources":["../../../../src/core/tasks/CheckBalanceTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,OAAO,gBAAiB,SAAQ,qBAAqB;IACzD,KAAK,CAAC,GAAG,CAAC,OAA4B;QACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;QAElE,aAAa,CAAC,kBAAkB,CAAC;YAC/B,IAAI;YACJ,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;YAChD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACjC,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,aAAa,EAC3B,kCAAkC,CACnC,CAAA;QACH,CAAC;QAED,MAAM,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;QAC/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { StepExecutorContext, TaskResult } from '../../types/execution.js';
|
|
2
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js';
|
|
3
|
+
export declare class PrepareTransactionTask extends BaseStepExecutionTask {
|
|
4
|
+
run(context: StepExecutorContext): Promise<TaskResult>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getStepTransaction } from '../../actions/getStepTransaction.js';
|
|
2
|
+
import { LiFiErrorCode } from '../../errors/constants.js';
|
|
3
|
+
import { TransactionError } from '../../errors/errors.js';
|
|
4
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js';
|
|
5
|
+
import { stepComparison } from './helpers/stepComparison.js';
|
|
6
|
+
export class PrepareTransactionTask extends BaseStepExecutionTask {
|
|
7
|
+
async run(context) {
|
|
8
|
+
const { client, step, statusManager, allowUserInteraction, executionOptions, isBridgeExecution, } = context;
|
|
9
|
+
const action = statusManager.findAction(step, isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP');
|
|
10
|
+
if (!action) {
|
|
11
|
+
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Action not found.');
|
|
12
|
+
}
|
|
13
|
+
if (!step.transactionRequest) {
|
|
14
|
+
const { execution, ...stepBase } = step;
|
|
15
|
+
const updatedStep = await getStepTransaction(client, stepBase);
|
|
16
|
+
const comparedStep = await stepComparison(statusManager, step, updatedStep, allowUserInteraction, executionOptions);
|
|
17
|
+
Object.assign(step, {
|
|
18
|
+
...comparedStep,
|
|
19
|
+
execution: step.execution,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (!step.transactionRequest?.data) {
|
|
23
|
+
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Transaction request data is not found.');
|
|
24
|
+
}
|
|
25
|
+
statusManager.updateAction(step, action.type, 'ACTION_REQUIRED');
|
|
26
|
+
if (!allowUserInteraction) {
|
|
27
|
+
return { status: 'PAUSED' };
|
|
28
|
+
}
|
|
29
|
+
return { status: 'COMPLETED' };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=PrepareTransactionTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareTransactionTask.js","sourceRoot":"","sources":["../../../../src/core/tasks/PrepareTransactionTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D,MAAM,OAAO,sBAAuB,SAAQ,qBAAqB;IAC/D,KAAK,CAAC,GAAG,CAAC,OAA4B;QACpC,MAAM,EACJ,MAAM,EACN,IAAI,EACJ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GAClB,GAAG,OAAO,CAAA;QAEX,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CACrC,IAAI,EACJ,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAC3C,CAAA;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,qBAAqB,EACnC,kDAAkD,CACnD,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAA;YACvC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC9D,MAAM,YAAY,GAAG,MAAM,cAAc,CACvC,aAAa,EACb,IAAI,EACJ,WAAW,EACX,oBAAoB,EACpB,gBAAgB,CACjB,CAAA;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBAClB,GAAG,YAAY;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,qBAAqB,EACnC,uEAAuE,CACxE,CAAA;QACH,CAAC;QAED,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QAEhE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QAC7B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ExecutionActionType } from '../../types/core.js';
|
|
2
|
+
import type { StepExecutorContext, TaskResult } from '../../types/execution.js';
|
|
3
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js';
|
|
4
|
+
export declare class WaitForTransactionStatusTask extends BaseStepExecutionTask {
|
|
5
|
+
readonly actionType: ExecutionActionType;
|
|
6
|
+
constructor(actionType: ExecutionActionType);
|
|
7
|
+
run(context: StepExecutorContext): Promise<TaskResult>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { LiFiErrorCode } from '../../errors/constants.js';
|
|
2
|
+
import { TransactionError } from '../../errors/errors.js';
|
|
3
|
+
import { getTransactionFailedMessage } from '../../utils/getTransactionMessage.js';
|
|
4
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js';
|
|
5
|
+
import { waitForTransactionStatus } from './helpers/waitForTransactionStatus.js';
|
|
6
|
+
export class WaitForTransactionStatusTask extends BaseStepExecutionTask {
|
|
7
|
+
actionType;
|
|
8
|
+
constructor(actionType) {
|
|
9
|
+
super();
|
|
10
|
+
this.actionType = actionType;
|
|
11
|
+
}
|
|
12
|
+
async run(context) {
|
|
13
|
+
const { client, step, statusManager, pollingIntervalMs, toChain, isBridgeExecution, } = context;
|
|
14
|
+
// At this point, we should have a txHash or taskId
|
|
15
|
+
// taskId is used for custom integrations that don't use the standard transaction hash
|
|
16
|
+
let transactionHash;
|
|
17
|
+
try {
|
|
18
|
+
const swapOrBridgeAction = statusManager.findAction(step, isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP');
|
|
19
|
+
transactionHash = swapOrBridgeAction?.txHash || swapOrBridgeAction?.taskId;
|
|
20
|
+
// Wait for the transaction status on the destination chain
|
|
21
|
+
if (!transactionHash) {
|
|
22
|
+
throw new Error('Transaction hash is undefined.');
|
|
23
|
+
}
|
|
24
|
+
const action = statusManager.findOrCreateAction({
|
|
25
|
+
step,
|
|
26
|
+
type: this.actionType,
|
|
27
|
+
chainId: this.actionType === 'RECEIVING_CHAIN'
|
|
28
|
+
? step.action.toChainId
|
|
29
|
+
: step.action.fromChainId,
|
|
30
|
+
status: 'PENDING',
|
|
31
|
+
});
|
|
32
|
+
const statusResponse = (await waitForTransactionStatus(client, statusManager, transactionHash, step, action.type, pollingIntervalMs));
|
|
33
|
+
const statusReceiving = statusResponse.receiving;
|
|
34
|
+
// Update action status
|
|
35
|
+
statusManager.updateAction(step, action.type, 'DONE', {
|
|
36
|
+
chainId: statusReceiving?.chainId || toChain.id,
|
|
37
|
+
substatus: statusResponse.substatus,
|
|
38
|
+
substatusMessage: statusResponse.substatusMessage,
|
|
39
|
+
txHash: statusReceiving?.txHash,
|
|
40
|
+
txLink: statusReceiving?.txLink ||
|
|
41
|
+
`${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
|
|
42
|
+
});
|
|
43
|
+
// Update execution status
|
|
44
|
+
statusManager.updateExecution(step, {
|
|
45
|
+
status: 'DONE',
|
|
46
|
+
...(statusResponse.sending.amount && {
|
|
47
|
+
fromAmount: statusResponse.sending.amount,
|
|
48
|
+
}),
|
|
49
|
+
...(statusReceiving?.amount && { toAmount: statusReceiving.amount }),
|
|
50
|
+
...(statusReceiving?.token && { toToken: statusReceiving.token }),
|
|
51
|
+
internalTxLink: statusResponse?.lifiExplorerLink,
|
|
52
|
+
externalTxLink: statusResponse?.bridgeExplorerLink,
|
|
53
|
+
gasCosts: [
|
|
54
|
+
{
|
|
55
|
+
amount: statusResponse.sending.gasAmount,
|
|
56
|
+
amountUSD: statusResponse.sending.gasAmountUSD,
|
|
57
|
+
token: statusResponse.sending.gasToken,
|
|
58
|
+
estimate: statusResponse.sending.gasUsed,
|
|
59
|
+
limit: statusResponse.sending.gasUsed,
|
|
60
|
+
price: statusResponse.sending.gasPrice,
|
|
61
|
+
type: 'SEND',
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
return { status: 'COMPLETED' };
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
const htmlMessage = await getTransactionFailedMessage(client, step, `${toChain.metamask.blockExplorerUrls[0]}tx/${transactionHash}`);
|
|
69
|
+
throw new TransactionError(LiFiErrorCode.TransactionFailed, htmlMessage ??
|
|
70
|
+
'Failed while waiting for status of destination chain transaction.', e);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=WaitForTransactionStatusTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaitForTransactionStatusTask.js","sourceRoot":"","sources":["../../../../src/core/tasks/WaitForTransactionStatusTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LiFiStep } from '@lifi/types';
|
|
2
|
-
import type { SDKClient } from '
|
|
2
|
+
import type { SDKClient } from '../../../types/core.js';
|
|
3
3
|
export declare const checkBalance: (client: SDKClient, walletAddress: string, step: LiFiStep, depth?: number) => Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getTokenBalance } from '
|
|
2
|
-
import { BalanceError } from '
|
|
3
|
-
import { formatUnits } from '
|
|
4
|
-
import { sleep } from '
|
|
1
|
+
import { getTokenBalance } from '../../../actions/getTokenBalance.js';
|
|
2
|
+
import { BalanceError } from '../../../errors/errors.js';
|
|
3
|
+
import { formatUnits } from '../../../utils/formatUnits.js';
|
|
4
|
+
import { sleep } from '../../../utils/sleep.js';
|
|
5
5
|
export const checkBalance = async (client, walletAddress, step, depth = 0) => {
|
|
6
6
|
const token = await getTokenBalance(client, walletAddress, step.action.fromToken);
|
|
7
7
|
if (token) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAiB,EACjB,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,eAAe,CACjC,MAAM,EACN,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpD,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC5D,CAAC;iBAAM,IACL,CAAC,aAAa;gBACZ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gBAC1D,WAAc;gBAChB,cAAc,EACd,CAAC;gBACD,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACzD,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,YAAY,GAAG,QAAQ,KAAK,CAAC,MAAM,4CAA4C,MAAM,IAAI,KAAK,CAAC,MAAM,gCAAgC,OAAO,IAAI,KAAK,CAAC,MAAM,4BAA4B,CAAA;gBAE5L,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,YAAY,IAAI,8FAA8F,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;gBAC1I,CAAC;gBAED,MAAM,IAAI,YAAY,CACpB,yBAAyB,EACzB,IAAI,KAAK,CAAC,YAAY,CAAC,CACxB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LiFiErrorCode } from '../../../errors/constants.js';
|
|
2
|
+
import { TransactionError } from '../../../errors/errors.js';
|
|
3
|
+
export const getTransactionRequestData = async (step, executionOptions) => {
|
|
4
|
+
if (!step.transactionRequest?.data) {
|
|
5
|
+
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Transaction request data is not found.');
|
|
6
|
+
}
|
|
7
|
+
let transactionRequest = {
|
|
8
|
+
data: step.transactionRequest.data,
|
|
9
|
+
};
|
|
10
|
+
if (executionOptions?.updateTransactionRequestHook) {
|
|
11
|
+
const customizedTransactionRequest = await executionOptions.updateTransactionRequestHook({
|
|
12
|
+
requestType: 'transaction',
|
|
13
|
+
...transactionRequest,
|
|
14
|
+
});
|
|
15
|
+
transactionRequest = {
|
|
16
|
+
...transactionRequest,
|
|
17
|
+
...customizedTransactionRequest,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const transactionRequestData = transactionRequest.data;
|
|
21
|
+
if (!transactionRequestData) {
|
|
22
|
+
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Transaction request data is not found.');
|
|
23
|
+
}
|
|
24
|
+
return transactionRequestData;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=getTransactionRequestData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTransactionRequestData.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/getTransactionRequestData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAO5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,IAAsB,EACtB,gBAAmC,EAClB,EAAE;IACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,qBAAqB,EACnC,uEAAuE,CACxE,CAAA;IACH,CAAC;IAED,IAAI,kBAAkB,GAA0B;QAC9C,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;KACnC,CAAA;IAED,IAAI,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;QACnD,MAAM,4BAA4B,GAChC,MAAM,gBAAgB,CAAC,4BAA4B,CAAC;YAClD,WAAW,EAAE,aAAa;YAC1B,GAAG,kBAAkB;SACtB,CAAC,CAAA;QAEJ,kBAAkB,GAAG;YACnB,GAAG,kBAAkB;YACrB,GAAG,4BAA4B;SAChC,CAAA;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAAA;IAEtD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,qBAAqB,EACnC,uEAAuE,CACxE,CAAA;IACH,CAAC;IAED,OAAO,sBAAsB,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LiFiStep } from '@lifi/types';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { StatusManager } from '../../../core/StatusManager.js';
|
|
3
|
+
import type { ExecutionOptions } from '../../../types/core.js';
|
|
4
4
|
/**
|
|
5
5
|
* This method checks whether the new and updated Step meets the required exchange rate conditions.
|
|
6
6
|
* If yes it returns the updated Step.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { checkStepSlippageThreshold } from '../../../core/utils.js';
|
|
2
|
+
import { LiFiErrorCode } from '../../../errors/constants.js';
|
|
3
|
+
import { TransactionError } from '../../../errors/errors.js';
|
|
4
4
|
/**
|
|
5
5
|
* This method checks whether the new and updated Step meets the required exchange rate conditions.
|
|
6
6
|
* If yes it returns the updated Step.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepComparison.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/stepComparison.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAG5D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,aAA4B,EAC5B,OAAiB,EACjB,OAAiB,EACjB,oBAA6B,EAC7B,gBAAmC,EAChB,EAAE;IACrB,uEAAuE;IACvE,IAAI,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,eAAoC,CAAA;IACxC,IAAI,oBAAoB,EAAE,CAAC;QACzB,eAAe,GAAG,MAAM,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;YACvE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACtC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACtC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,0EAA0E;QAC1E,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,0BAA0B,EACxC,+LAA+L,CAChM,CAAA;IACH,CAAC;IAED,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC,CAAA"}
|
package/dist/esm/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LiFiStep, StatusResponse } from '@lifi/types';
|
|
2
|
-
import type { ExecutionActionType, SDKClient } from '
|
|
3
|
-
import type { StatusManager } from '
|
|
2
|
+
import type { ExecutionActionType, SDKClient } from '../../../types/core.js';
|
|
3
|
+
import type { StatusManager } from '../../StatusManager.js';
|
|
4
4
|
export declare function waitForTransactionStatus(client: SDKClient, statusManager: StatusManager, txHash: string, step: LiFiStep, actionType: ExecutionActionType, interval?: number): Promise<StatusResponse>;
|