@lifi/sdk 4.0.0-alpha.14 → 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 +12 -10
- 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/utils/waitForResult.d.ts +1 -1
- package/dist/cjs/utils/waitForResult.js +2 -6
- package/dist/cjs/utils/waitForResult.js.map +1 -1
- 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 +16 -10
- 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/utils/waitForResult.d.ts +2 -2
- package/dist/esm/utils/waitForResult.js +3 -7
- package/dist/esm/utils/waitForResult.js.map +1 -1
- 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 +16 -10
- 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/utils/waitForResult.d.ts +2 -2
- package/dist/types/utils/waitForResult.d.ts.map +1 -1
- 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 +19 -18
- package/src/types/execution.ts +40 -0
- package/src/utils/waitForResult.ts +4 -9
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/errors/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,WAAW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/errors/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;CAChD;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,CAAA;AAErC,oBAAY,aAAa;IACvB,aAAa,OAAO;IACpB,eAAe,OAAO;IACtB,sBAAsB,OAAO;IAC7B,iBAAiB,OAAO;IACxB,OAAO,OAAO;IACd,mBAAmB,OAAO;IAC1B,QAAQ,OAAO;IACf,gBAAgB,OAAO;IACvB,qBAAqB,OAAO;IAC5B,aAAa,OAAO;IACpB,mBAAmB,OAAO;IAC1B,aAAa,OAAO;IACpB,iBAAiB,OAAO;IACxB,YAAY,OAAO;IACnB,iBAAiB,OAAO;IACxB,iBAAiB,OAAO;IACxB,0BAA0B,OAAO;IACjC,4BAA4B,OAAO;IACnC,kBAAkB,OAAO;IACzB,2BAA2B,OAAO;IAClC,mBAAmB,OAAO;IAC1B,mBAAmB,OAAO;IAC1B,mBAAmB,OAAO;IAC1B,iBAAiB,OAAO;IACxB,eAAe,OAAO;IACtB,eAAe,OAAO;IACtB,WAAW,OAAO;CACnB;AAED,oBAAY,YAAY;IACtB,YAAY,4BAA4B;IACxC,aAAa,wGAAwG;IACrH,WAAW,0BAA0B;IACrC,sBAAsB,gCAAgC;IACtD,mBAAmB,8BAA8B;CAClD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ExecuteStepRetryParams } from '../types/core.js';
|
|
1
2
|
import { BaseError } from './baseError.js';
|
|
2
3
|
import { LiFiErrorCode } from './constants.js';
|
|
3
4
|
export declare class RPCError extends BaseError {
|
|
@@ -21,4 +22,13 @@ export declare class ServerError extends BaseError {
|
|
|
21
22
|
export declare class ValidationError extends BaseError {
|
|
22
23
|
constructor(message: string);
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Thrown by a step executor when executeStep should be retried with the given params
|
|
27
|
+
* (e.g. wallet rejected 7702 upgrade → retry with atomicityNotReady).
|
|
28
|
+
* The execution layer catches this and retries executeStep(client, step, retryParams).
|
|
29
|
+
*/
|
|
30
|
+
export declare class ExecuteStepRetryError extends BaseError {
|
|
31
|
+
readonly retryParams: ExecuteStepRetryParams;
|
|
32
|
+
constructor(message: string, retryParams: ExecuteStepRetryParams, cause?: Error);
|
|
33
|
+
}
|
|
24
34
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEzD,qBAAa,QAAS,SAAQ,SAAS;gBACzB,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGhE;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGhE;AAED,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGhE;AAED,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG3C;AAED,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG3C;AAED,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM;CAG5B"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEzD,qBAAa,QAAS,SAAQ,SAAS;gBACzB,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGhE;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGhE;AAED,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGhE;AAED,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG3C;AAED,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG3C;AAED,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAA;gBAG1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,sBAAsB,EACnC,KAAK,CAAC,EAAE,KAAK;CAUhB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -22,19 +22,26 @@ export { actions } from './actions/index.js';
|
|
|
22
22
|
export { patchContractCalls } from './actions/patchContractCalls.js';
|
|
23
23
|
export { relayTransaction } from './actions/relayTransaction.js';
|
|
24
24
|
export { createClient } from './client/createClient.js';
|
|
25
|
+
export { getActionMessage, getSubstatusMessage } from './core/actionMessages.js';
|
|
26
|
+
export { BaseStepExecutionTask } from './core/BaseStepExecutionTask.js';
|
|
25
27
|
export { BaseStepExecutor } from './core/BaseStepExecutor.js';
|
|
26
|
-
export { checkBalance } from './core/checkBalance.js';
|
|
27
28
|
export { executeRoute, getActiveRoute, getActiveRoutes, resumeRoute, stopRouteExecution, updateRouteExecution, } from './core/execution.js';
|
|
28
29
|
export { StatusManager } from './core/StatusManager.js';
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
30
|
+
export { TaskPipeline } from './core/TaskPipeline.js';
|
|
31
|
+
export { CheckBalanceTask } from './core/tasks/CheckBalanceTask.js';
|
|
32
|
+
export { checkBalance } from './core/tasks/helpers/checkBalance.js';
|
|
33
|
+
export { getTransactionRequestData } from './core/tasks/helpers/getTransactionRequestData.js';
|
|
34
|
+
export { stepComparison } from './core/tasks/helpers/stepComparison.js';
|
|
35
|
+
export { PrepareTransactionTask } from './core/tasks/PrepareTransactionTask.js';
|
|
36
|
+
export { WaitForTransactionStatusTask } from './core/tasks/WaitForTransactionStatusTask.js';
|
|
31
37
|
export { BaseError } from './errors/baseError.js';
|
|
32
38
|
export type { ErrorCode } from './errors/constants.js';
|
|
33
39
|
export { ErrorMessage, ErrorName, LiFiErrorCode } from './errors/constants.js';
|
|
34
|
-
export { BalanceError, ProviderError, RPCError, ServerError, TransactionError, UnknownError, ValidationError, } from './errors/errors.js';
|
|
40
|
+
export { BalanceError, ExecuteStepRetryError, ProviderError, RPCError, ServerError, TransactionError, UnknownError, ValidationError, } from './errors/errors.js';
|
|
35
41
|
export { HTTPError } from './errors/httpError.js';
|
|
36
42
|
export { SDKError } from './errors/SDKError.js';
|
|
37
|
-
export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ContractCallParams, ContractTool, ExchangeRateUpdateParams, Execution, ExecutionAction, ExecutionActionStatus, ExecutionActionType, ExecutionOptions, ExecutionStatus, GetContractCallsHook, GetContractCallsResult, InteractionSettings, LiFiStepExtended, RequestInterceptor, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, RPCUrls, SDKBaseConfig, SDKClient, SDKConfig, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, TransactionMethodType, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './types/core.js';
|
|
43
|
+
export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ContractCallParams, ContractTool, ExchangeRateUpdateParams, ExecuteStepRetryParams, Execution, ExecutionAction, ExecutionActionStatus, ExecutionActionType, ExecutionOptions, ExecutionStatus, GetContractCallsHook, GetContractCallsResult, InteractionSettings, LiFiStepExtended, RequestInterceptor, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, RPCUrls, SDKBaseConfig, SDKClient, SDKConfig, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, TransactionMethodType, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './types/core.js';
|
|
44
|
+
export type { StepExecutorBaseContext, StepExecutorContext, TaskResult, TaskStatus, } from './types/execution.js';
|
|
38
45
|
export { checkPackageUpdates } from './utils/checkPackageUpdates.js';
|
|
39
46
|
export { convertQuoteToRoute } from './utils/convertQuoteToRoute.js';
|
|
40
47
|
export { fetchTxErrorDetails } from './utils/fetchTxErrorDetails.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ export interface SDKBaseConfig {
|
|
|
15
15
|
preloadChains?: boolean;
|
|
16
16
|
chainsRefetchInterval?: number;
|
|
17
17
|
requestInterceptor?: RequestInterceptor;
|
|
18
|
-
safeApiKey?: string;
|
|
19
18
|
}
|
|
20
19
|
export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
|
|
21
20
|
integrator: string;
|
|
@@ -48,11 +47,16 @@ export interface InteractionSettings {
|
|
|
48
47
|
allowUpdates?: boolean;
|
|
49
48
|
allowExecution?: boolean;
|
|
50
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Params passed when retrying executeStep after an ExecuteStepRetryError.
|
|
52
|
+
* Providers can use this to pass strategy-specific retry options (e.g. atomicityNotReady for Ethereum 7702).
|
|
53
|
+
*/
|
|
54
|
+
export type ExecuteStepRetryParams = Record<string, unknown>;
|
|
51
55
|
export interface StepExecutor {
|
|
52
56
|
allowUserInteraction: boolean;
|
|
53
57
|
allowExecution: boolean;
|
|
54
58
|
setInteraction(settings?: InteractionSettings): void;
|
|
55
|
-
executeStep(client: SDKClient, step: LiFiStepExtended): Promise<LiFiStepExtended>;
|
|
59
|
+
executeStep(client: SDKClient, step: LiFiStepExtended, retryParams?: ExecuteStepRetryParams): Promise<LiFiStepExtended>;
|
|
56
60
|
}
|
|
57
61
|
export interface RouteExecutionData {
|
|
58
62
|
route: Route;
|
|
@@ -137,29 +141,31 @@ export interface ExecutionOptions {
|
|
|
137
141
|
}
|
|
138
142
|
export type ExecutionStatus = 'ACTION_REQUIRED' | 'PENDING' | 'FAILED' | 'DONE';
|
|
139
143
|
export type ExecutionActionStatus = 'STARTED' | 'ACTION_REQUIRED' | 'MESSAGE_REQUIRED' | 'RESET_REQUIRED' | 'PENDING' | 'FAILED' | 'DONE' | 'CANCELLED';
|
|
140
|
-
export type ExecutionActionType = '
|
|
144
|
+
export type ExecutionActionType = 'PERMIT' | 'CHECK_ALLOWANCE' | 'NATIVE_PERMIT' | 'RESET_ALLOWANCE' | 'SET_ALLOWANCE' | 'SWAP' | 'CROSS_CHAIN' | 'RECEIVING_CHAIN';
|
|
141
145
|
export type ExecutionAction = {
|
|
142
146
|
type: ExecutionActionType;
|
|
143
147
|
status: ExecutionActionStatus;
|
|
148
|
+
message?: string;
|
|
144
149
|
substatus?: Substatus;
|
|
150
|
+
substatusMessage?: string;
|
|
145
151
|
chainId?: number;
|
|
146
|
-
txHash?: string;
|
|
147
|
-
taskId?: string;
|
|
148
|
-
txLink?: string;
|
|
149
|
-
txType?: TransactionMethodType;
|
|
150
|
-
message?: string;
|
|
151
152
|
error?: {
|
|
152
153
|
code: string | number;
|
|
153
154
|
message: string;
|
|
154
155
|
htmlMessage?: string;
|
|
155
156
|
};
|
|
156
|
-
|
|
157
|
+
txHash?: string;
|
|
158
|
+
txLink?: string;
|
|
159
|
+
taskId?: string;
|
|
160
|
+
txType?: TransactionMethodType;
|
|
161
|
+
txHex?: string;
|
|
157
162
|
};
|
|
158
163
|
export interface Execution {
|
|
159
164
|
startedAt: number;
|
|
160
165
|
signedAt?: number;
|
|
161
166
|
status: ExecutionStatus;
|
|
162
167
|
actions: Array<ExecutionAction>;
|
|
168
|
+
lastActionType?: ExecutionActionType;
|
|
163
169
|
fromAmount?: string;
|
|
164
170
|
toAmount?: string;
|
|
165
171
|
toToken?: Token;
|
|
@@ -168,5 +174,5 @@ export interface Execution {
|
|
|
168
174
|
internalTxLink?: string;
|
|
169
175
|
externalTxLink?: string;
|
|
170
176
|
}
|
|
171
|
-
export type TransactionMethodType = 'standard' | 'relayed' | 'batched'
|
|
177
|
+
export type TransactionMethodType = 'standard' | 'relayed' | 'batched';
|
|
172
178
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,YAAY,EACZ,aAAa,EACb,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACZ,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,mBAAmB,KACzB,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ExtendedChain } from '@lifi/types';
|
|
2
|
+
import type { StatusManager } from '../core/StatusManager.js';
|
|
3
|
+
import type { ExecuteStepRetryError } from '../errors/errors.js';
|
|
4
|
+
import type { SDKError } from '../errors/SDKError.js';
|
|
5
|
+
import type { ExecuteStepRetryParams, ExecutionAction, ExecutionOptions, LiFiStepExtended, SDKClient } from './core.js';
|
|
6
|
+
export interface StepExecutorBaseContext {
|
|
7
|
+
statusManager: StatusManager;
|
|
8
|
+
executionOptions?: ExecutionOptions;
|
|
9
|
+
fromChain: ExtendedChain;
|
|
10
|
+
toChain: ExtendedChain;
|
|
11
|
+
isBridgeExecution: boolean;
|
|
12
|
+
client: SDKClient;
|
|
13
|
+
step: LiFiStepExtended;
|
|
14
|
+
allowUserInteraction: boolean;
|
|
15
|
+
retryParams?: ExecuteStepRetryParams;
|
|
16
|
+
}
|
|
17
|
+
export interface StepExecutorContext extends StepExecutorBaseContext {
|
|
18
|
+
pollingIntervalMs?: number;
|
|
19
|
+
parseErrors: (error: Error, step?: LiFiStepExtended, action?: ExecutionAction) => Promise<SDKError | ExecuteStepRetryError>;
|
|
20
|
+
}
|
|
21
|
+
export interface TaskResult<TContext = Record<string, unknown>> {
|
|
22
|
+
status: TaskStatus;
|
|
23
|
+
/** Optional: data produced for downstream tasks. Pipeline merges into the executor context. */
|
|
24
|
+
context?: TContext;
|
|
25
|
+
}
|
|
26
|
+
export type TaskStatus = 'COMPLETED' | 'PAUSED';
|
|
27
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/types/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACV,MAAM,WAAW,CAAA;AAElB,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,aAAa,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,SAAS,EAAE,aAAa,CAAA;IACxB,OAAO,EAAE,aAAa,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,gBAAgB,CAAA;IACtB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,WAAW,CAAC,EAAE,sBAAsB,CAAA;CACrC;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,CACX,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,gBAAgB,EACvB,MAAM,CAAC,EAAE,eAAe,KACrB,OAAO,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAA;CAC/C;AAED,MAAM,WAAW,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,MAAM,EAAE,UAAU,CAAA;IAClB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Repeatedly calls a given asynchronous function until it resolves with a value
|
|
3
3
|
* @param fn The function that should be repeated
|
|
4
|
-
* @param interval The timeout in milliseconds between retries,
|
|
4
|
+
* @param interval The timeout in milliseconds between retries, defaults to 5000
|
|
5
5
|
* @param maxRetries Maximum number of retries before throwing an error, defaults to 3
|
|
6
6
|
* @param shouldRetry Optional predicate to determine if an error should trigger a retry
|
|
7
7
|
* @returns The result of the fn function
|
|
8
8
|
* @throws Error if maximum retries is reached, if function keeps returning undefined, or if shouldRetry returns false
|
|
9
9
|
*/
|
|
10
|
-
export declare const waitForResult: <T>(fn: () => Promise<T | undefined>, interval?: number
|
|
10
|
+
export declare const waitForResult: <T>(fn: () => Promise<T | undefined>, interval?: number, maxRetries?: number, shouldRetry?: (count: number, error: unknown) => boolean) => Promise<T>;
|
|
11
11
|
//# sourceMappingURL=waitForResult.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForResult.d.ts","sourceRoot":"","sources":["../../../src/utils/waitForResult.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAU,CAAC,EACnC,IAAI,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAChC,
|
|
1
|
+
{"version":3,"file":"waitForResult.d.ts","sourceRoot":"","sources":["../../../src/utils/waitForResult.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAU,CAAC,EACnC,IAAI,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAChC,iBAAe,EACf,mBAAc,EACd,cAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAoB,KACnE,OAAO,CAAC,CAAC,CAuBX,CAAA"}
|
package/dist/types/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StepExecutorContext, TaskResult } from '../types/execution.js'
|
|
2
|
+
|
|
3
|
+
export abstract class BaseStepExecutionTask {
|
|
4
|
+
shouldRun(_context: StepExecutorContext): Promise<boolean> {
|
|
5
|
+
return Promise.resolve(true)
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
abstract run(context: StepExecutorContext): Promise<TaskResult>
|
|
9
|
+
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import type { LiFiStep } from '@lifi/types'
|
|
2
1
|
import type {
|
|
2
|
+
ExecuteStepRetryParams,
|
|
3
3
|
ExecutionOptions,
|
|
4
4
|
InteractionSettings,
|
|
5
|
+
LiFiStepExtended,
|
|
5
6
|
SDKClient,
|
|
6
7
|
StepExecutor,
|
|
7
8
|
StepExecutorOptions,
|
|
8
9
|
} from '../types/core.js'
|
|
10
|
+
import type {
|
|
11
|
+
StepExecutorBaseContext,
|
|
12
|
+
StepExecutorContext,
|
|
13
|
+
} from '../types/execution.js'
|
|
9
14
|
import { StatusManager } from './StatusManager.js'
|
|
15
|
+
import type { TaskPipeline } from './TaskPipeline.js'
|
|
10
16
|
|
|
11
17
|
// Please be careful when changing the defaults as it may break the behavior (e.g., background execution)
|
|
12
18
|
const defaultInteractionSettings = {
|
|
@@ -37,5 +43,49 @@ export abstract class BaseStepExecutor implements StepExecutor {
|
|
|
37
43
|
this.allowExecution = interactionSettings.allowExecution
|
|
38
44
|
}
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
private createBaseContext = async (
|
|
47
|
+
client: SDKClient,
|
|
48
|
+
step: LiFiStepExtended,
|
|
49
|
+
retryParams?: ExecuteStepRetryParams
|
|
50
|
+
): Promise<StepExecutorBaseContext> => {
|
|
51
|
+
const fromChain = await client.getChainById(step.action.fromChainId)
|
|
52
|
+
const toChain = await client.getChainById(step.action.toChainId)
|
|
53
|
+
|
|
54
|
+
const isBridgeExecution = fromChain.id !== toChain.id
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
client,
|
|
58
|
+
step,
|
|
59
|
+
fromChain,
|
|
60
|
+
toChain,
|
|
61
|
+
isBridgeExecution,
|
|
62
|
+
retryParams,
|
|
63
|
+
statusManager: this.statusManager,
|
|
64
|
+
executionOptions: this.executionOptions,
|
|
65
|
+
allowUserInteraction: this.allowUserInteraction,
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
abstract createContext(
|
|
70
|
+
baseContext: StepExecutorBaseContext
|
|
71
|
+
): Promise<StepExecutorContext>
|
|
72
|
+
|
|
73
|
+
abstract createPipeline(context: StepExecutorContext): TaskPipeline
|
|
74
|
+
|
|
75
|
+
executeStep = async (
|
|
76
|
+
client: SDKClient,
|
|
77
|
+
step: LiFiStepExtended,
|
|
78
|
+
retryParams?: ExecuteStepRetryParams
|
|
79
|
+
): Promise<LiFiStepExtended> => {
|
|
80
|
+
step.execution = this.statusManager.initExecutionObject(step)
|
|
81
|
+
|
|
82
|
+
const baseContext = await this.createBaseContext(client, step, retryParams)
|
|
83
|
+
const context = await this.createContext(baseContext)
|
|
84
|
+
|
|
85
|
+
const pipeline = this.createPipeline(context)
|
|
86
|
+
|
|
87
|
+
await pipeline.run(context)
|
|
88
|
+
|
|
89
|
+
return step
|
|
90
|
+
}
|
|
41
91
|
}
|
|
@@ -4,7 +4,6 @@ import type {
|
|
|
4
4
|
ExecutionAction,
|
|
5
5
|
ExecutionActionStatus,
|
|
6
6
|
ExecutionActionType,
|
|
7
|
-
ExecutionStatus,
|
|
8
7
|
LiFiStepExtended,
|
|
9
8
|
} from '../types/core.js'
|
|
10
9
|
import { getActionMessage } from './actionMessages.js'
|
|
@@ -59,24 +58,19 @@ export class StatusManager {
|
|
|
59
58
|
/**
|
|
60
59
|
* Updates the execution object of a Step.
|
|
61
60
|
* @param step The current step in execution
|
|
62
|
-
* @param status The status for the execution
|
|
63
61
|
* @param execution Optional. Information about received tokens
|
|
64
62
|
* @returns The step with the updated execution object
|
|
65
63
|
*/
|
|
66
64
|
updateExecution(
|
|
67
65
|
step: LiFiStepExtended,
|
|
68
|
-
|
|
69
|
-
execution?: Partial<Execution>
|
|
66
|
+
execution: Partial<Execution>
|
|
70
67
|
): LiFiStep {
|
|
71
68
|
if (!step.execution) {
|
|
72
69
|
throw Error("Can't update empty execution.")
|
|
73
70
|
}
|
|
74
|
-
step.execution
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
...step.execution,
|
|
78
|
-
...execution,
|
|
79
|
-
}
|
|
71
|
+
step.execution = {
|
|
72
|
+
...step.execution,
|
|
73
|
+
...execution,
|
|
80
74
|
}
|
|
81
75
|
this.updateStepInRoute(step)
|
|
82
76
|
return step
|
|
@@ -110,36 +104,57 @@ export class StatusManager {
|
|
|
110
104
|
|
|
111
105
|
/**
|
|
112
106
|
* Create and push a new action into the execution.
|
|
107
|
+
* Caller is responsible for ensuring an action of this type does not already exist (e.g. after findAction returned undefined).
|
|
113
108
|
* @param step The step that should contain the new action.
|
|
114
|
-
* @param type Type of the action.
|
|
109
|
+
* @param type Type of the action.
|
|
115
110
|
* @param chainId Chain Id of the action.
|
|
116
111
|
* @param status By default created action is set to the STARTED status. We can override new action with the needed status.
|
|
117
|
-
* @returns
|
|
112
|
+
* @returns The created action.
|
|
118
113
|
*/
|
|
119
|
-
|
|
114
|
+
createAction = ({
|
|
120
115
|
step,
|
|
121
116
|
type,
|
|
122
117
|
chainId,
|
|
123
118
|
status,
|
|
124
119
|
}: FindOrCreateActionProps): ExecutionAction => {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (action) {
|
|
128
|
-
return action
|
|
120
|
+
if (!step.execution) {
|
|
121
|
+
throw new Error("Execution hasn't been initialized.")
|
|
129
122
|
}
|
|
130
123
|
|
|
131
124
|
const newAction: ExecutionAction = {
|
|
132
|
-
type
|
|
125
|
+
type,
|
|
133
126
|
message: getActionMessage(type, status ?? 'STARTED'),
|
|
134
127
|
status: status ?? 'STARTED',
|
|
135
|
-
chainId
|
|
128
|
+
chainId,
|
|
136
129
|
}
|
|
137
130
|
|
|
138
|
-
step.execution
|
|
131
|
+
step.execution.actions.push(newAction)
|
|
132
|
+
step.execution.lastActionType = type
|
|
139
133
|
this.updateStepInRoute(step)
|
|
140
134
|
return newAction
|
|
141
135
|
}
|
|
142
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Find an existing action by type, or create and push a new one if none exists.
|
|
139
|
+
* @param step The step that should contain the action.
|
|
140
|
+
* @param type Type of the action. Used to identify already existing actions.
|
|
141
|
+
* @param chainId Chain Id of the action (used when creating).
|
|
142
|
+
* @param status By default created action is set to the STARTED status. We can override new action with the needed status.
|
|
143
|
+
* @returns The found or newly created action.
|
|
144
|
+
*/
|
|
145
|
+
findOrCreateAction = ({
|
|
146
|
+
step,
|
|
147
|
+
type,
|
|
148
|
+
chainId,
|
|
149
|
+
status,
|
|
150
|
+
}: FindOrCreateActionProps): ExecutionAction => {
|
|
151
|
+
const action = this.findAction(step, type, status)
|
|
152
|
+
if (action) {
|
|
153
|
+
return action
|
|
154
|
+
}
|
|
155
|
+
return this.createAction({ step, type, chainId, status })
|
|
156
|
+
}
|
|
157
|
+
|
|
143
158
|
/**
|
|
144
159
|
* Update an action object.
|
|
145
160
|
* @param step The step where the action should be updated
|
|
@@ -152,7 +167,7 @@ export class StatusManager {
|
|
|
152
167
|
step: LiFiStepExtended,
|
|
153
168
|
type: ExecutionActionType,
|
|
154
169
|
status: ExecutionActionStatus,
|
|
155
|
-
params?: Partial<ExecutionAction>
|
|
170
|
+
params?: Partial<ExecutionAction & { signedAt?: number }>
|
|
156
171
|
): ExecutionAction => {
|
|
157
172
|
if (!step.execution) {
|
|
158
173
|
throw new Error("Can't update an empty step execution.")
|
|
@@ -186,13 +201,14 @@ export class StatusManager {
|
|
|
186
201
|
break
|
|
187
202
|
}
|
|
188
203
|
|
|
204
|
+
step.execution.lastActionType = type
|
|
205
|
+
|
|
189
206
|
currentAction.status = status
|
|
190
207
|
currentAction.message = getActionMessage(type, status)
|
|
191
208
|
// set extra parameters or overwrite the standard params set in the switch statement
|
|
192
209
|
if (params) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
210
|
+
const { signedAt: _signedAt, ...rest } = params
|
|
211
|
+
Object.assign(currentAction, rest)
|
|
196
212
|
}
|
|
197
213
|
// Sort actions, the ones with DONE status go first
|
|
198
214
|
step.execution.actions = [
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ExecuteStepRetryError } from '../errors/errors.js'
|
|
2
|
+
import type { StepExecutorContext, TaskResult } from '../types/execution.js'
|
|
3
|
+
import type { BaseStepExecutionTask } from './BaseStepExecutionTask.js'
|
|
4
|
+
|
|
5
|
+
export class TaskPipeline {
|
|
6
|
+
private readonly tasks: BaseStepExecutionTask[]
|
|
7
|
+
|
|
8
|
+
constructor(tasks: BaseStepExecutionTask[]) {
|
|
9
|
+
this.tasks = tasks
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async run(context: StepExecutorContext): Promise<TaskResult> {
|
|
13
|
+
const { statusManager, step, parseErrors } = context
|
|
14
|
+
|
|
15
|
+
for (const task of this.tasks) {
|
|
16
|
+
try {
|
|
17
|
+
const shouldRun = await task.shouldRun(context)
|
|
18
|
+
if (!shouldRun) {
|
|
19
|
+
continue
|
|
20
|
+
}
|
|
21
|
+
const result = await task.run(context)
|
|
22
|
+
if (result.status === 'PAUSED') {
|
|
23
|
+
return { status: 'PAUSED' }
|
|
24
|
+
}
|
|
25
|
+
if (result.context && typeof result.context === 'object') {
|
|
26
|
+
Object.assign(context, result.context)
|
|
27
|
+
}
|
|
28
|
+
} catch (error: any) {
|
|
29
|
+
const action = step?.execution?.lastActionType
|
|
30
|
+
? statusManager.findAction(step, step?.execution?.lastActionType)
|
|
31
|
+
: undefined
|
|
32
|
+
const parsed = await parseErrors(error, step, action)
|
|
33
|
+
if (!(parsed instanceof ExecuteStepRetryError) && action) {
|
|
34
|
+
statusManager.updateAction(step, action.type, 'FAILED', {
|
|
35
|
+
error: {
|
|
36
|
+
message: parsed.cause?.message,
|
|
37
|
+
code: parsed.code,
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
throw parsed
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return { status: 'COMPLETED' }
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -8,11 +8,20 @@ const actionMessages: Record<
|
|
|
8
8
|
ExecutionActionType,
|
|
9
9
|
Partial<Record<ExecutionActionStatus, string>>
|
|
10
10
|
> = {
|
|
11
|
-
|
|
11
|
+
CHECK_ALLOWANCE: {
|
|
12
|
+
STARTED: 'Checking token allowance',
|
|
13
|
+
PENDING: 'Waiting for token allowance check',
|
|
14
|
+
DONE: 'Token allowance checked',
|
|
15
|
+
},
|
|
16
|
+
RESET_ALLOWANCE: {
|
|
17
|
+
STARTED: 'Resetting token allowance',
|
|
18
|
+
RESET_REQUIRED: 'Resetting token allowance',
|
|
19
|
+
PENDING: 'Waiting for token allowance reset',
|
|
20
|
+
DONE: 'Token allowance reset',
|
|
21
|
+
},
|
|
22
|
+
SET_ALLOWANCE: {
|
|
12
23
|
STARTED: 'Setting token allowance',
|
|
13
24
|
ACTION_REQUIRED: 'Set token allowance',
|
|
14
|
-
RESET_REQUIRED: 'Resetting token allowance',
|
|
15
|
-
MESSAGE_REQUIRED: 'Sign token allowance message',
|
|
16
25
|
PENDING: 'Waiting for token allowance',
|
|
17
26
|
DONE: 'Token allowance set',
|
|
18
27
|
},
|
|
@@ -31,6 +40,7 @@ const actionMessages: Record<
|
|
|
31
40
|
DONE: 'Bridge transaction confirmed',
|
|
32
41
|
},
|
|
33
42
|
RECEIVING_CHAIN: {
|
|
43
|
+
STARTED: 'Waiting for destination chain',
|
|
34
44
|
PENDING: 'Waiting for destination chain',
|
|
35
45
|
DONE: 'Bridge completed',
|
|
36
46
|
},
|
|
@@ -40,7 +50,14 @@ const actionMessages: Record<
|
|
|
40
50
|
PENDING: 'Waiting for permit message',
|
|
41
51
|
DONE: 'Permit message signed',
|
|
42
52
|
},
|
|
53
|
+
NATIVE_PERMIT: {
|
|
54
|
+
STARTED: 'Preparing transaction',
|
|
55
|
+
ACTION_REQUIRED: 'Sign permit message',
|
|
56
|
+
PENDING: 'Waiting for permit message',
|
|
57
|
+
DONE: 'Permit message signed',
|
|
58
|
+
},
|
|
43
59
|
}
|
|
60
|
+
|
|
44
61
|
const substatusMessages: Record<
|
|
45
62
|
StatusMessage,
|
|
46
63
|
Partial<Record<Substatus, string>>
|
package/src/core/execution.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Route } from '@lifi/types'
|
|
2
2
|
import { LiFiErrorCode } from '../errors/constants.js'
|
|
3
|
-
import { ProviderError } from '../errors/errors.js'
|
|
3
|
+
import { ExecuteStepRetryError, ProviderError } from '../errors/errors.js'
|
|
4
4
|
import type {
|
|
5
5
|
ExecutionOptions,
|
|
6
|
+
LiFiStepExtended,
|
|
6
7
|
RouteExtended,
|
|
7
8
|
SDKClient,
|
|
8
9
|
SDKProvider,
|
|
@@ -94,7 +95,6 @@ const executeSteps = async (
|
|
|
94
95
|
const step = route.steps[index]
|
|
95
96
|
const previousStep = route.steps[index - 1]
|
|
96
97
|
// Check if the step is already done
|
|
97
|
-
//
|
|
98
98
|
if (step.execution?.status === 'DONE') {
|
|
99
99
|
continue
|
|
100
100
|
}
|
|
@@ -136,7 +136,21 @@ const executeSteps = async (
|
|
|
136
136
|
updateRouteExecution(route, execution.executionOptions)
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
let executedStep: LiFiStepExtended
|
|
140
|
+
try {
|
|
141
|
+
executedStep = await stepExecutor.executeStep(client, step)
|
|
142
|
+
} catch (e) {
|
|
143
|
+
if (e instanceof ExecuteStepRetryError) {
|
|
144
|
+
step.execution = undefined
|
|
145
|
+
executedStep = await stepExecutor.executeStep(
|
|
146
|
+
client,
|
|
147
|
+
step,
|
|
148
|
+
e.retryParams
|
|
149
|
+
)
|
|
150
|
+
} else {
|
|
151
|
+
throw e
|
|
152
|
+
}
|
|
153
|
+
}
|
|
140
154
|
|
|
141
155
|
// We may reach this point if user interaction isn't allowed. We want to stop execution until we resume it
|
|
142
156
|
if (executedStep.execution?.status !== 'DONE') {
|
|
@@ -7,9 +7,8 @@ export const prepareRestart = (route: RouteExtended) => {
|
|
|
7
7
|
// Find the index of the last action that has tx hash, taskId, or signed messages
|
|
8
8
|
const lastValidIndex = step.execution.actions.findLastIndex(
|
|
9
9
|
(action) =>
|
|
10
|
-
(
|
|
11
|
-
|
|
12
|
-
!!action.signedTypedData?.length) &&
|
|
10
|
+
['SWAP', 'CROSS_CHAIN', 'RECEIVING_CHAIN'].includes(action.type) &&
|
|
11
|
+
(!!action.txHash || !!action.taskId) &&
|
|
13
12
|
action.status !== 'FAILED'
|
|
14
13
|
)
|
|
15
14
|
|
|
@@ -23,6 +22,8 @@ export const prepareRestart = (route: RouteExtended) => {
|
|
|
23
22
|
// If no tx hash exists, reset the actions array
|
|
24
23
|
step.execution.actions = []
|
|
25
24
|
}
|
|
25
|
+
// Reset the last action type
|
|
26
|
+
step.execution.lastActionType = undefined
|
|
26
27
|
}
|
|
27
28
|
step.transactionRequest = undefined
|
|
28
29
|
}
|