@lifi/sdk 3.6.1 → 3.6.2

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.
Files changed (137) hide show
  1. package/package.json +3 -3
  2. package/src/_cjs/core/BaseStepExecutor.js +13 -38
  3. package/src/_cjs/core/BaseStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/EVM/EVMStepExecutor.js +329 -359
  5. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  6. package/src/_cjs/core/EVM/checkAllowance.js +18 -9
  7. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  8. package/src/_cjs/core/EVM/checkPermitSupport.js +2 -2
  9. package/src/_cjs/core/EVM/checkPermitSupport.js.map +1 -1
  10. package/src/_cjs/core/EVM/permits/allowanceTransfer.js +8 -8
  11. package/src/_cjs/core/EVM/permits/allowanceTransfer.js.map +1 -1
  12. package/src/_cjs/core/EVM/permits/getNativePermit.js +12 -10
  13. package/src/_cjs/core/EVM/permits/getNativePermit.js.map +1 -1
  14. package/src/_cjs/core/EVM/permits/signPermit2Message.js +27 -26
  15. package/src/_cjs/core/EVM/permits/signPermit2Message.js.map +1 -1
  16. package/src/_cjs/core/EVM/permits/signatureTransfer.js +8 -8
  17. package/src/_cjs/core/EVM/permits/signatureTransfer.js.map +1 -1
  18. package/src/_cjs/core/EVM/typeguards.js +5 -2
  19. package/src/_cjs/core/EVM/typeguards.js.map +1 -1
  20. package/src/_cjs/core/EVM/types.js.map +1 -1
  21. package/src/_cjs/core/Solana/KeypairWalletAdapter.js +8 -33
  22. package/src/_cjs/core/Solana/KeypairWalletAdapter.js.map +1 -1
  23. package/src/_cjs/core/Solana/SolanaStepExecutor.js +97 -112
  24. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  25. package/src/_cjs/core/StatusManager.js +100 -135
  26. package/src/_cjs/core/StatusManager.js.map +1 -1
  27. package/src/_cjs/core/UTXO/UTXOStepExecutor.js +136 -151
  28. package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
  29. package/src/_cjs/core/prepareRestart.js +7 -1
  30. package/src/_cjs/core/prepareRestart.js.map +1 -1
  31. package/src/_cjs/errors/SDKError.js +5 -30
  32. package/src/_cjs/errors/SDKError.js.map +1 -1
  33. package/src/_cjs/errors/baseError.js +2 -12
  34. package/src/_cjs/errors/baseError.js.map +1 -1
  35. package/src/_cjs/errors/httpError.js +6 -36
  36. package/src/_cjs/errors/httpError.js.map +1 -1
  37. package/src/_cjs/index.js +3 -2
  38. package/src/_cjs/index.js.map +1 -1
  39. package/src/_cjs/services/api.js +2 -4
  40. package/src/_cjs/services/api.js.map +1 -1
  41. package/src/_cjs/utils/withDedupe.js +1 -6
  42. package/src/_cjs/utils/withDedupe.js.map +1 -1
  43. package/src/_cjs/version.js +1 -1
  44. package/src/_esm/core/BaseStepExecutor.js +13 -38
  45. package/src/_esm/core/BaseStepExecutor.js.map +1 -1
  46. package/src/_esm/core/EVM/EVMStepExecutor.js +367 -397
  47. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  48. package/src/_esm/core/EVM/checkAllowance.js +18 -9
  49. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  50. package/src/_esm/core/EVM/checkPermitSupport.js +2 -2
  51. package/src/_esm/core/EVM/checkPermitSupport.js.map +1 -1
  52. package/src/_esm/core/EVM/permits/allowanceTransfer.js +8 -8
  53. package/src/_esm/core/EVM/permits/allowanceTransfer.js.map +1 -1
  54. package/src/_esm/core/EVM/permits/getNativePermit.js +12 -10
  55. package/src/_esm/core/EVM/permits/getNativePermit.js.map +1 -1
  56. package/src/_esm/core/EVM/permits/signPermit2Message.js +29 -28
  57. package/src/_esm/core/EVM/permits/signPermit2Message.js.map +1 -1
  58. package/src/_esm/core/EVM/permits/signatureTransfer.js +8 -8
  59. package/src/_esm/core/EVM/permits/signatureTransfer.js.map +1 -1
  60. package/src/_esm/core/EVM/typeguards.js +4 -2
  61. package/src/_esm/core/EVM/typeguards.js.map +1 -1
  62. package/src/_esm/core/EVM/types.js.map +1 -1
  63. package/src/_esm/core/Solana/KeypairWalletAdapter.js +12 -37
  64. package/src/_esm/core/Solana/KeypairWalletAdapter.js.map +1 -1
  65. package/src/_esm/core/Solana/SolanaStepExecutor.js +105 -120
  66. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  67. package/src/_esm/core/StatusManager.js +129 -164
  68. package/src/_esm/core/StatusManager.js.map +1 -1
  69. package/src/_esm/core/UTXO/UTXOStepExecutor.js +144 -159
  70. package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
  71. package/src/_esm/core/prepareRestart.js +10 -1
  72. package/src/_esm/core/prepareRestart.js.map +1 -1
  73. package/src/_esm/errors/SDKError.js +5 -30
  74. package/src/_esm/errors/SDKError.js.map +1 -1
  75. package/src/_esm/errors/baseError.js +2 -12
  76. package/src/_esm/errors/baseError.js.map +1 -1
  77. package/src/_esm/errors/httpError.js +6 -36
  78. package/src/_esm/errors/httpError.js.map +1 -1
  79. package/src/_esm/index.js +1 -1
  80. package/src/_esm/index.js.map +1 -1
  81. package/src/_esm/services/api.js +2 -4
  82. package/src/_esm/services/api.js.map +1 -1
  83. package/src/_esm/utils/withDedupe.js +1 -6
  84. package/src/_esm/utils/withDedupe.js.map +1 -1
  85. package/src/_esm/version.js +1 -1
  86. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  87. package/src/_types/core/EVM/checkAllowance.d.ts +2 -3
  88. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  89. package/src/_types/core/EVM/checkPermitSupport.d.ts.map +1 -1
  90. package/src/_types/core/EVM/permits/allowanceTransfer.d.ts +4 -4
  91. package/src/_types/core/EVM/permits/allowanceTransfer.d.ts.map +1 -1
  92. package/src/_types/core/EVM/permits/getNativePermit.d.ts +1 -2
  93. package/src/_types/core/EVM/permits/getNativePermit.d.ts.map +1 -1
  94. package/src/_types/core/EVM/permits/signPermit2Message.d.ts +2 -11
  95. package/src/_types/core/EVM/permits/signPermit2Message.d.ts.map +1 -1
  96. package/src/_types/core/EVM/permits/signatureTransfer.d.ts +2 -2
  97. package/src/_types/core/EVM/permits/signatureTransfer.d.ts.map +1 -1
  98. package/src/_types/core/EVM/permits/types.d.ts +3 -9
  99. package/src/_types/core/EVM/permits/types.d.ts.map +1 -1
  100. package/src/_types/core/EVM/typeguards.d.ts +6 -2
  101. package/src/_types/core/EVM/typeguards.d.ts.map +1 -1
  102. package/src/_types/core/EVM/types.d.ts +2 -5
  103. package/src/_types/core/EVM/types.d.ts.map +1 -1
  104. package/src/_types/core/prepareRestart.d.ts.map +1 -1
  105. package/src/_types/index.d.ts +1 -1
  106. package/src/_types/index.d.ts.map +1 -1
  107. package/src/_types/services/api.d.ts +2 -2
  108. package/src/_types/services/api.d.ts.map +1 -1
  109. package/src/_types/version.d.ts +1 -1
  110. package/src/core/EVM/EVMStepExecutor.ts +39 -44
  111. package/src/core/EVM/checkAllowance.ts +28 -19
  112. package/src/core/EVM/checkPermitSupport.ts +14 -2
  113. package/src/core/EVM/permits/allowanceTransfer.ts +14 -10
  114. package/src/core/EVM/permits/getNativePermit.ts +13 -11
  115. package/src/core/EVM/permits/signPermit2Message.ts +43 -63
  116. package/src/core/EVM/permits/signatureTransfer.ts +10 -10
  117. package/src/core/EVM/permits/types.ts +3 -16
  118. package/src/core/EVM/typeguards.ts +14 -4
  119. package/src/core/EVM/types.ts +2 -6
  120. package/src/core/prepareRestart.ts +14 -2
  121. package/src/index.ts +1 -1
  122. package/src/services/api.ts +3 -6
  123. package/src/version.ts +1 -1
  124. package/src/_cjs/core/EVM/permits/signNativePermitMessage.js +0 -20
  125. package/src/_cjs/core/EVM/permits/signNativePermitMessage.js.map +0 -1
  126. package/src/_cjs/core/EVM/permits/utils.js +0 -31
  127. package/src/_cjs/core/EVM/permits/utils.js.map +0 -1
  128. package/src/_esm/core/EVM/permits/signNativePermitMessage.js +0 -16
  129. package/src/_esm/core/EVM/permits/signNativePermitMessage.js.map +0 -1
  130. package/src/_esm/core/EVM/permits/utils.js +0 -26
  131. package/src/_esm/core/EVM/permits/utils.js.map +0 -1
  132. package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts +0 -4
  133. package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts.map +0 -1
  134. package/src/_types/core/EVM/permits/utils.d.ts +0 -6
  135. package/src/_types/core/EVM/permits/utils.d.ts.map +0 -1
  136. package/src/core/EVM/permits/signNativePermitMessage.ts +0 -27
  137. package/src/core/EVM/permits/utils.ts +0 -40
@@ -13,132 +13,117 @@ import { callSolanaWithRetry } from './connection.js';
13
13
  import { parseSolanaErrors } from './parseSolanaErrors.js';
14
14
  import { sendAndConfirmTransaction } from './sendAndConfirmTransaction.js';
15
15
  export class SolanaStepExecutor extends BaseStepExecutor {
16
+ walletAdapter;
16
17
  constructor(options) {
17
18
  super(options);
18
- Object.defineProperty(this, "walletAdapter", {
19
- enumerable: true,
20
- configurable: true,
21
- writable: true,
22
- value: void 0
19
+ this.walletAdapter = options.walletAdapter;
20
+ }
21
+ checkWalletAdapter = (step) => {
22
+ // Prevent execution of the quote by wallet different from the one which requested the quote
23
+ if (this.walletAdapter.publicKey.toString() !== step.action.fromAddress) {
24
+ throw new TransactionError(LiFiErrorCode.WalletChangedDuringExecution, 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.');
25
+ }
26
+ };
27
+ executeStep = async (step) => {
28
+ step.execution = this.statusManager.initExecutionObject(step);
29
+ const fromChain = await config.getChainById(step.action.fromChainId);
30
+ const toChain = await config.getChainById(step.action.toChainId);
31
+ const isBridgeExecution = fromChain.id !== toChain.id;
32
+ const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
33
+ let process = this.statusManager.findOrCreateProcess({
34
+ step,
35
+ type: currentProcessType,
36
+ chainId: fromChain.id,
23
37
  });
24
- Object.defineProperty(this, "checkWalletAdapter", {
25
- enumerable: true,
26
- configurable: true,
27
- writable: true,
28
- value: (step) => {
29
- // Prevent execution of the quote by wallet different from the one which requested the quote
30
- if (this.walletAdapter.publicKey.toString() !== step.action.fromAddress) {
31
- throw new TransactionError(LiFiErrorCode.WalletChangedDuringExecution, 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.');
38
+ if (process.status !== 'DONE') {
39
+ try {
40
+ process = this.statusManager.updateProcess(step, process.type, 'STARTED');
41
+ // Check balance
42
+ await checkBalance(this.walletAdapter.publicKey.toString(), step);
43
+ // Create new transaction
44
+ if (!step.transactionRequest) {
45
+ const { execution, ...stepBase } = step;
46
+ const updatedStep = await getStepTransaction(stepBase);
47
+ const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
48
+ Object.assign(step, {
49
+ ...comparedStep,
50
+ execution: step.execution,
51
+ });
32
52
  }
33
- }
34
- });
35
- Object.defineProperty(this, "executeStep", {
36
- enumerable: true,
37
- configurable: true,
38
- writable: true,
39
- value: async (step) => {
40
- step.execution = this.statusManager.initExecutionObject(step);
41
- const fromChain = await config.getChainById(step.action.fromChainId);
42
- const toChain = await config.getChainById(step.action.toChainId);
43
- const isBridgeExecution = fromChain.id !== toChain.id;
44
- const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
45
- let process = this.statusManager.findOrCreateProcess({
46
- step,
47
- type: currentProcessType,
48
- chainId: fromChain.id,
53
+ if (!step.transactionRequest?.data) {
54
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
55
+ }
56
+ process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
57
+ if (!this.allowUserInteraction) {
58
+ return step;
59
+ }
60
+ let transactionRequest = {
61
+ data: step.transactionRequest.data,
62
+ };
63
+ if (this.executionOptions?.updateTransactionRequestHook) {
64
+ const customizedTransactionRequest = await this.executionOptions.updateTransactionRequestHook({
65
+ requestType: 'transaction',
66
+ ...transactionRequest,
67
+ });
68
+ transactionRequest = {
69
+ ...transactionRequest,
70
+ ...customizedTransactionRequest,
71
+ };
72
+ }
73
+ if (!transactionRequest.data) {
74
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
75
+ }
76
+ const versionedTransaction = VersionedTransaction.deserialize(base64ToUint8Array(transactionRequest.data));
77
+ this.checkWalletAdapter(step);
78
+ // We give users 2 minutes to sign the transaction or it should be considered expired
79
+ const signedTx = await withTimeout(() => this.walletAdapter.signTransaction(versionedTransaction), {
80
+ // https://solana.com/docs/advanced/confirmation#transaction-expiration
81
+ // Use 2 minutes to account for fluctuations
82
+ timeout: 120_000,
83
+ errorInstance: new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired: blockhash is no longer recent enough.'),
49
84
  });
50
- if (process.status !== 'DONE') {
51
- try {
52
- process = this.statusManager.updateProcess(step, process.type, 'STARTED');
53
- // Check balance
54
- await checkBalance(this.walletAdapter.publicKey.toString(), step);
55
- // Create new transaction
56
- if (!step.transactionRequest) {
57
- const { execution, ...stepBase } = step;
58
- const updatedStep = await getStepTransaction(stepBase);
59
- const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
60
- Object.assign(step, {
61
- ...comparedStep,
62
- execution: step.execution,
63
- });
64
- }
65
- if (!step.transactionRequest?.data) {
66
- throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
67
- }
68
- process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
69
- if (!this.allowUserInteraction) {
70
- return step;
71
- }
72
- let transactionRequest = {
73
- data: step.transactionRequest.data,
74
- };
75
- if (this.executionOptions?.updateTransactionRequestHook) {
76
- const customizedTransactionRequest = await this.executionOptions.updateTransactionRequestHook({
77
- requestType: 'transaction',
78
- ...transactionRequest,
79
- });
80
- transactionRequest = {
81
- ...transactionRequest,
82
- ...customizedTransactionRequest,
83
- };
84
- }
85
- if (!transactionRequest.data) {
86
- throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
87
- }
88
- const versionedTransaction = VersionedTransaction.deserialize(base64ToUint8Array(transactionRequest.data));
89
- this.checkWalletAdapter(step);
90
- // We give users 2 minutes to sign the transaction or it should be considered expired
91
- const signedTx = await withTimeout(() => this.walletAdapter.signTransaction(versionedTransaction), {
92
- // https://solana.com/docs/advanced/confirmation#transaction-expiration
93
- // Use 2 minutes to account for fluctuations
94
- timeout: 120_000,
95
- errorInstance: new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired: blockhash is no longer recent enough.'),
96
- });
97
- process = this.statusManager.updateProcess(step, process.type, 'PENDING');
98
- const simulationResult = await callSolanaWithRetry((connection) => connection.simulateTransaction(signedTx, {
99
- commitment: 'confirmed',
100
- replaceRecentBlockhash: true,
101
- }));
102
- if (simulationResult.value.err) {
103
- throw new TransactionError(LiFiErrorCode.TransactionSimulationFailed, 'Transaction simulation failed');
104
- }
105
- const confirmedTx = await sendAndConfirmTransaction(signedTx);
106
- if (!confirmedTx.signatureResult) {
107
- throw new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired: The block height has exceeded the maximum allowed limit.');
108
- }
109
- if (confirmedTx.signatureResult.err) {
110
- const reason = typeof confirmedTx.signatureResult.err === 'object'
111
- ? JSON.stringify(confirmedTx.signatureResult.err)
112
- : confirmedTx.signatureResult.err;
113
- throw new TransactionError(LiFiErrorCode.TransactionFailed, `Transaction failed: ${reason}`);
114
- }
115
- // Transaction has been confirmed and we can update the process
116
- process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
117
- txHash: confirmedTx.txSignature,
118
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${confirmedTx.txSignature}`,
119
- });
120
- if (isBridgeExecution) {
121
- process = this.statusManager.updateProcess(step, process.type, 'DONE');
122
- }
123
- }
124
- catch (e) {
125
- const error = await parseSolanaErrors(e, step, process);
126
- process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
127
- error: {
128
- message: error.cause.message,
129
- code: error.code,
130
- },
131
- });
132
- this.statusManager.updateExecution(step, 'FAILED');
133
- throw error;
134
- }
85
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING');
86
+ const simulationResult = await callSolanaWithRetry((connection) => connection.simulateTransaction(signedTx, {
87
+ commitment: 'confirmed',
88
+ replaceRecentBlockhash: true,
89
+ }));
90
+ if (simulationResult.value.err) {
91
+ throw new TransactionError(LiFiErrorCode.TransactionSimulationFailed, 'Transaction simulation failed');
92
+ }
93
+ const confirmedTx = await sendAndConfirmTransaction(signedTx);
94
+ if (!confirmedTx.signatureResult) {
95
+ throw new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired: The block height has exceeded the maximum allowed limit.');
96
+ }
97
+ if (confirmedTx.signatureResult.err) {
98
+ const reason = typeof confirmedTx.signatureResult.err === 'object'
99
+ ? JSON.stringify(confirmedTx.signatureResult.err)
100
+ : confirmedTx.signatureResult.err;
101
+ throw new TransactionError(LiFiErrorCode.TransactionFailed, `Transaction failed: ${reason}`);
102
+ }
103
+ // Transaction has been confirmed and we can update the process
104
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
105
+ txHash: confirmedTx.txSignature,
106
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${confirmedTx.txSignature}`,
107
+ });
108
+ if (isBridgeExecution) {
109
+ process = this.statusManager.updateProcess(step, process.type, 'DONE');
135
110
  }
136
- await waitForDestinationChainTransaction(step, process, fromChain, toChain, this.statusManager);
137
- // DONE
138
- return step;
139
111
  }
140
- });
141
- this.walletAdapter = options.walletAdapter;
142
- }
112
+ catch (e) {
113
+ const error = await parseSolanaErrors(e, step, process);
114
+ process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
115
+ error: {
116
+ message: error.cause.message,
117
+ code: error.code,
118
+ },
119
+ });
120
+ this.statusManager.updateExecution(step, 'FAILED');
121
+ throw error;
122
+ }
123
+ }
124
+ await waitForDestinationChainTransaction(step, process, fromChain, toChain, this.statusManager);
125
+ // DONE
126
+ return step;
127
+ };
143
128
  }
144
129
  //# sourceMappingURL=SolanaStepExecutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaStepExecutor.js","sourceRoot":"","sources":["../../../core/Solana/SolanaStepExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SolanaStepExecutor.js","sourceRoot":"","sources":["../../../core/Solana/SolanaStepExecutor.ts"],"names":[],"mappings":"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"}
@@ -6,173 +6,33 @@ import { getProcessMessage } from './processMessages.js';
6
6
  * @returns {StatusManager} An instance of StatusManager.
7
7
  */
8
8
  export class StatusManager {
9
+ routeId;
10
+ shouldUpdate = true;
9
11
  constructor(routeId) {
10
- Object.defineProperty(this, "routeId", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: void 0
15
- });
16
- Object.defineProperty(this, "shouldUpdate", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: true
21
- });
22
- /**
23
- * Initializes the execution object of a Step.
24
- * @param step The current step in execution
25
- * @returns The initialized execution object for this step and a function to update this step
26
- */
27
- Object.defineProperty(this, "initExecutionObject", {
28
- enumerable: true,
29
- configurable: true,
30
- writable: true,
31
- value: (step) => {
32
- if (!step.execution) {
33
- step.execution = {
34
- status: 'PENDING',
35
- process: [],
36
- startedAt: Date.now(),
37
- };
38
- this.updateStepInRoute(step);
39
- }
40
- // Change status to PENDING after resuming from FAILED
41
- if (step.execution.status === 'FAILED') {
42
- step.execution.startedAt = Date.now();
43
- step.execution.status = 'PENDING';
44
- this.updateStepInRoute(step);
45
- }
46
- return step.execution;
47
- }
48
- });
49
- /**
50
- * Create and push a new process into the execution.
51
- * @param step The step that should contain the new process.
52
- * @param type Type of the process. Used to identify already existing processes.
53
- * @param chainId Chain Id of the process.
54
- * @param status By default created procces is set to the STARTED status. We can override new process with the needed status.
55
- * @returns Returns process.
56
- */
57
- Object.defineProperty(this, "findOrCreateProcess", {
58
- enumerable: true,
59
- configurable: true,
60
- writable: true,
61
- value: ({ step, type, chainId, status, }) => {
62
- const process = this.findProcess(step, type, status);
63
- if (process) {
64
- return process;
65
- }
66
- const newProcess = {
67
- type: type,
68
- startedAt: Date.now(),
69
- message: getProcessMessage(type, status ?? 'STARTED'),
70
- status: status ?? 'STARTED',
71
- chainId: chainId,
72
- };
73
- step.execution.process.push(newProcess);
74
- this.updateStepInRoute(step);
75
- return newProcess;
76
- }
77
- });
78
- /**
79
- * Update a process object.
80
- * @param step The step where the process should be updated
81
- * @param type The process type to update
82
- * @param status The status the process gets.
83
- * @param [params] Additional parameters to append to the process.
84
- * @returns The update process
85
- */
86
- Object.defineProperty(this, "updateProcess", {
87
- enumerable: true,
88
- configurable: true,
89
- writable: true,
90
- value: (step, type, status, params) => {
91
- if (!step.execution) {
92
- throw new Error("Can't update an empty step execution.");
93
- }
94
- const currentProcess = this.findProcess(step, type);
95
- if (!currentProcess) {
96
- throw new Error("Can't find a process for the given type.");
97
- }
98
- switch (status) {
99
- case 'CANCELLED':
100
- currentProcess.doneAt = Date.now();
101
- break;
102
- case 'FAILED':
103
- currentProcess.doneAt = Date.now();
104
- step.execution.status = 'FAILED';
105
- break;
106
- case 'DONE':
107
- currentProcess.doneAt = Date.now();
108
- break;
109
- case 'PENDING':
110
- step.execution.status = 'PENDING';
111
- break;
112
- case 'ACTION_REQUIRED':
113
- step.execution.status = 'ACTION_REQUIRED';
114
- break;
115
- default:
116
- break;
117
- }
118
- currentProcess.status = status;
119
- currentProcess.message = getProcessMessage(type, status);
120
- // set extra parameters or overwritte the standard params set in the switch statement
121
- if (params) {
122
- for (const [key, value] of Object.entries(params)) {
123
- currentProcess[key] = value;
124
- }
125
- }
126
- // Sort processes, the ones with DONE status go first
127
- step.execution.process = [
128
- ...step.execution.process.filter((process) => process.status === 'DONE'),
129
- ...step.execution.process.filter((process) => process.status !== 'DONE'),
130
- ];
131
- this.updateStepInRoute(step); // updates the step in the route
132
- return currentProcess;
133
- }
134
- });
135
- /**
136
- * Remove a process from the execution
137
- * @param step The step where the process should be removed from
138
- * @param type The process type to remove
139
- */
140
- Object.defineProperty(this, "removeProcess", {
141
- enumerable: true,
142
- configurable: true,
143
- writable: true,
144
- value: (step, type) => {
145
- if (!step.execution) {
146
- throw new Error("Execution hasn't been initialized.");
147
- }
148
- const index = step.execution.process.findIndex((p) => p.type === type);
149
- step.execution.process.splice(index, 1);
150
- this.updateStepInRoute(step);
151
- }
152
- });
153
- Object.defineProperty(this, "updateStepInRoute", {
154
- enumerable: true,
155
- configurable: true,
156
- writable: true,
157
- value: (step) => {
158
- if (!this.shouldUpdate) {
159
- return step;
160
- }
161
- const data = executionState.get(this.routeId);
162
- if (!data) {
163
- throw new Error('Execution data not found.');
164
- }
165
- const stepIndex = data.route.steps.findIndex((routeStep) => routeStep.id === step.id);
166
- if (stepIndex === -1) {
167
- throw new Error("Couldn't find a step to update.");
168
- }
169
- data.route.steps[stepIndex] = { ...data.route.steps[stepIndex], ...step };
170
- data.executionOptions?.updateRouteHook?.(data.route);
171
- return data.route.steps[stepIndex];
172
- }
173
- });
174
12
  this.routeId = routeId;
175
13
  }
14
+ /**
15
+ * Initializes the execution object of a Step.
16
+ * @param step The current step in execution
17
+ * @returns The initialized execution object for this step and a function to update this step
18
+ */
19
+ initExecutionObject = (step) => {
20
+ if (!step.execution) {
21
+ step.execution = {
22
+ status: 'PENDING',
23
+ process: [],
24
+ startedAt: Date.now(),
25
+ };
26
+ this.updateStepInRoute(step);
27
+ }
28
+ // Change status to PENDING after resuming from FAILED
29
+ if (step.execution.status === 'FAILED') {
30
+ step.execution.startedAt = Date.now();
31
+ step.execution.status = 'PENDING';
32
+ this.updateStepInRoute(step);
33
+ }
34
+ return step.execution;
35
+ };
176
36
  /**
177
37
  * Updates the execution object of a Step.
178
38
  * @param step The current step in execution
@@ -215,6 +75,111 @@ export class StatusManager {
215
75
  }
216
76
  return process;
217
77
  }
78
+ /**
79
+ * Create and push a new process into the execution.
80
+ * @param step The step that should contain the new process.
81
+ * @param type Type of the process. Used to identify already existing processes.
82
+ * @param chainId Chain Id of the process.
83
+ * @param status By default created procces is set to the STARTED status. We can override new process with the needed status.
84
+ * @returns Returns process.
85
+ */
86
+ findOrCreateProcess = ({ step, type, chainId, status, }) => {
87
+ const process = this.findProcess(step, type, status);
88
+ if (process) {
89
+ return process;
90
+ }
91
+ const newProcess = {
92
+ type: type,
93
+ startedAt: Date.now(),
94
+ message: getProcessMessage(type, status ?? 'STARTED'),
95
+ status: status ?? 'STARTED',
96
+ chainId: chainId,
97
+ };
98
+ step.execution.process.push(newProcess);
99
+ this.updateStepInRoute(step);
100
+ return newProcess;
101
+ };
102
+ /**
103
+ * Update a process object.
104
+ * @param step The step where the process should be updated
105
+ * @param type The process type to update
106
+ * @param status The status the process gets.
107
+ * @param [params] Additional parameters to append to the process.
108
+ * @returns The update process
109
+ */
110
+ updateProcess = (step, type, status, params) => {
111
+ if (!step.execution) {
112
+ throw new Error("Can't update an empty step execution.");
113
+ }
114
+ const currentProcess = this.findProcess(step, type);
115
+ if (!currentProcess) {
116
+ throw new Error("Can't find a process for the given type.");
117
+ }
118
+ switch (status) {
119
+ case 'CANCELLED':
120
+ currentProcess.doneAt = Date.now();
121
+ break;
122
+ case 'FAILED':
123
+ currentProcess.doneAt = Date.now();
124
+ step.execution.status = 'FAILED';
125
+ break;
126
+ case 'DONE':
127
+ currentProcess.doneAt = Date.now();
128
+ break;
129
+ case 'PENDING':
130
+ step.execution.status = 'PENDING';
131
+ break;
132
+ case 'ACTION_REQUIRED':
133
+ step.execution.status = 'ACTION_REQUIRED';
134
+ break;
135
+ default:
136
+ break;
137
+ }
138
+ currentProcess.status = status;
139
+ currentProcess.message = getProcessMessage(type, status);
140
+ // set extra parameters or overwritte the standard params set in the switch statement
141
+ if (params) {
142
+ for (const [key, value] of Object.entries(params)) {
143
+ currentProcess[key] = value;
144
+ }
145
+ }
146
+ // Sort processes, the ones with DONE status go first
147
+ step.execution.process = [
148
+ ...step.execution.process.filter((process) => process.status === 'DONE'),
149
+ ...step.execution.process.filter((process) => process.status !== 'DONE'),
150
+ ];
151
+ this.updateStepInRoute(step); // updates the step in the route
152
+ return currentProcess;
153
+ };
154
+ /**
155
+ * Remove a process from the execution
156
+ * @param step The step where the process should be removed from
157
+ * @param type The process type to remove
158
+ */
159
+ removeProcess = (step, type) => {
160
+ if (!step.execution) {
161
+ throw new Error("Execution hasn't been initialized.");
162
+ }
163
+ const index = step.execution.process.findIndex((p) => p.type === type);
164
+ step.execution.process.splice(index, 1);
165
+ this.updateStepInRoute(step);
166
+ };
167
+ updateStepInRoute = (step) => {
168
+ if (!this.shouldUpdate) {
169
+ return step;
170
+ }
171
+ const data = executionState.get(this.routeId);
172
+ if (!data) {
173
+ throw new Error('Execution data not found.');
174
+ }
175
+ const stepIndex = data.route.steps.findIndex((routeStep) => routeStep.id === step.id);
176
+ if (stepIndex === -1) {
177
+ throw new Error("Couldn't find a step to update.");
178
+ }
179
+ data.route.steps[stepIndex] = { ...data.route.steps[stepIndex], ...step };
180
+ data.executionOptions?.updateRouteHook?.(data.route);
181
+ return data.route.steps[stepIndex];
182
+ };
218
183
  allowUpdates(value) {
219
184
  this.shouldUpdate = value;
220
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StatusManager.js","sourceRoot":"","sources":["../../core/StatusManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusManager.js","sourceRoot":"","sources":["../../core/StatusManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAiBxD;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACP,OAAO,CAAQ;IACxB,YAAY,GAAG,IAAI,CAAA;IAE3B,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;;;OAIG;IACH,mBAAmB,GAAG,CAAC,IAAsB,EAAa,EAAE;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG;gBACf,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAA;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACrC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAA;YACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC,CAAA;IAED;;;;;;OAMG;IACH,eAAe,CACb,IAAsB,EACtB,MAAuB,EACvB,SAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC9C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;QAC9B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACpC,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG;gBACf,GAAG,IAAI,CAAC,SAAS;gBACjB,GAAG,SAAS;aACb,CAAA;QACH,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACT,IAAsB,EACtB,IAAiB,EACjB,MAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAEnE,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,GAAG,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,MAAM,GACmB,EAAW,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAEpD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,UAAU,GAAY;YAC1B,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC;YACrD,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,OAAO,EAAE,OAAO;SACjB,CAAA;QAED,IAAI,CAAC,SAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED;;;;;;;OAOG;IACH,aAAa,GAAG,CACd,IAAsB,EACtB,IAAiB,EACjB,MAAqB,EACrB,MAAyB,EAChB,EAAE;QACX,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEnD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QAED,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,WAAW;gBACd,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAClC,MAAK;YACP,KAAK,QAAQ;gBACX,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAClC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAA;gBAChC,MAAK;YACP,KAAK,MAAM;gBACT,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAClC,MAAK;YACP,KAAK,SAAS;gBACZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAA;gBACjC,MAAK;YACP,KAAK,iBAAiB;gBACpB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB,CAAA;gBACzC,MAAK;YACP;gBACE,MAAK;QACT,CAAC;QAED,cAAc,CAAC,MAAM,GAAG,MAAM,CAAA;QAC9B,cAAc,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACxD,qFAAqF;QACrF,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,qDAAqD;QACrD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG;YACvB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;YACxE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;SACzE,CAAA;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA,CAAC,gCAAgC;QAC7D,OAAO,cAAc,CAAA;IACvB,CAAC,CAAA;IAED;;;;OAIG;IACH,aAAa,GAAG,CAAC,IAAsB,EAAE,IAAiB,EAAQ,EAAE;QAClE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACtE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,iBAAiB,GAAG,CAAC,IAAc,EAAY,EAAE;QAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CACxC,CAAA;QAED,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,CAAA;QAEzE,IAAI,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,YAAY,CAAC,KAAc;QACzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;IAC3B,CAAC;CACF"}