@lifi/sdk 3.6.0 → 3.6.2-beta.0

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 (145) 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 +103 -136
  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/_cjs/version.js.map +1 -1
  45. package/src/_esm/core/BaseStepExecutor.js +13 -38
  46. package/src/_esm/core/BaseStepExecutor.js.map +1 -1
  47. package/src/_esm/core/EVM/EVMStepExecutor.js +367 -397
  48. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  49. package/src/_esm/core/EVM/checkAllowance.js +18 -9
  50. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  51. package/src/_esm/core/EVM/checkPermitSupport.js +2 -2
  52. package/src/_esm/core/EVM/checkPermitSupport.js.map +1 -1
  53. package/src/_esm/core/EVM/permits/allowanceTransfer.js +8 -8
  54. package/src/_esm/core/EVM/permits/allowanceTransfer.js.map +1 -1
  55. package/src/_esm/core/EVM/permits/getNativePermit.js +12 -10
  56. package/src/_esm/core/EVM/permits/getNativePermit.js.map +1 -1
  57. package/src/_esm/core/EVM/permits/signPermit2Message.js +29 -28
  58. package/src/_esm/core/EVM/permits/signPermit2Message.js.map +1 -1
  59. package/src/_esm/core/EVM/permits/signatureTransfer.js +8 -8
  60. package/src/_esm/core/EVM/permits/signatureTransfer.js.map +1 -1
  61. package/src/_esm/core/EVM/typeguards.js +4 -2
  62. package/src/_esm/core/EVM/typeguards.js.map +1 -1
  63. package/src/_esm/core/EVM/types.js.map +1 -1
  64. package/src/_esm/core/Solana/KeypairWalletAdapter.js +12 -37
  65. package/src/_esm/core/Solana/KeypairWalletAdapter.js.map +1 -1
  66. package/src/_esm/core/Solana/SolanaStepExecutor.js +105 -120
  67. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  68. package/src/_esm/core/StatusManager.js +132 -165
  69. package/src/_esm/core/StatusManager.js.map +1 -1
  70. package/src/_esm/core/UTXO/UTXOStepExecutor.js +144 -159
  71. package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
  72. package/src/_esm/core/prepareRestart.js +10 -1
  73. package/src/_esm/core/prepareRestart.js.map +1 -1
  74. package/src/_esm/errors/SDKError.js +5 -30
  75. package/src/_esm/errors/SDKError.js.map +1 -1
  76. package/src/_esm/errors/baseError.js +2 -12
  77. package/src/_esm/errors/baseError.js.map +1 -1
  78. package/src/_esm/errors/httpError.js +6 -36
  79. package/src/_esm/errors/httpError.js.map +1 -1
  80. package/src/_esm/index.js +1 -1
  81. package/src/_esm/index.js.map +1 -1
  82. package/src/_esm/services/api.js +2 -4
  83. package/src/_esm/services/api.js.map +1 -1
  84. package/src/_esm/utils/withDedupe.js +1 -6
  85. package/src/_esm/utils/withDedupe.js.map +1 -1
  86. package/src/_esm/version.js +1 -1
  87. package/src/_esm/version.js.map +1 -1
  88. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  89. package/src/_types/core/EVM/checkAllowance.d.ts +2 -3
  90. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  91. package/src/_types/core/EVM/checkPermitSupport.d.ts.map +1 -1
  92. package/src/_types/core/EVM/permits/allowanceTransfer.d.ts +4 -4
  93. package/src/_types/core/EVM/permits/allowanceTransfer.d.ts.map +1 -1
  94. package/src/_types/core/EVM/permits/getNativePermit.d.ts +1 -2
  95. package/src/_types/core/EVM/permits/getNativePermit.d.ts.map +1 -1
  96. package/src/_types/core/EVM/permits/signPermit2Message.d.ts +2 -11
  97. package/src/_types/core/EVM/permits/signPermit2Message.d.ts.map +1 -1
  98. package/src/_types/core/EVM/permits/signatureTransfer.d.ts +2 -2
  99. package/src/_types/core/EVM/permits/signatureTransfer.d.ts.map +1 -1
  100. package/src/_types/core/EVM/permits/types.d.ts +3 -9
  101. package/src/_types/core/EVM/permits/types.d.ts.map +1 -1
  102. package/src/_types/core/EVM/typeguards.d.ts +6 -2
  103. package/src/_types/core/EVM/typeguards.d.ts.map +1 -1
  104. package/src/_types/core/EVM/types.d.ts +2 -5
  105. package/src/_types/core/EVM/types.d.ts.map +1 -1
  106. package/src/_types/core/StatusManager.d.ts.map +1 -1
  107. package/src/_types/core/prepareRestart.d.ts.map +1 -1
  108. package/src/_types/core/types.d.ts +2 -0
  109. package/src/_types/core/types.d.ts.map +1 -1
  110. package/src/_types/index.d.ts +1 -1
  111. package/src/_types/index.d.ts.map +1 -1
  112. package/src/_types/services/api.d.ts +2 -2
  113. package/src/_types/services/api.d.ts.map +1 -1
  114. package/src/_types/version.d.ts +1 -1
  115. package/src/_types/version.d.ts.map +1 -1
  116. package/src/core/EVM/EVMStepExecutor.ts +39 -44
  117. package/src/core/EVM/checkAllowance.ts +28 -19
  118. package/src/core/EVM/checkPermitSupport.ts +14 -2
  119. package/src/core/EVM/permits/allowanceTransfer.ts +14 -10
  120. package/src/core/EVM/permits/getNativePermit.ts +13 -11
  121. package/src/core/EVM/permits/signPermit2Message.ts +43 -63
  122. package/src/core/EVM/permits/signatureTransfer.ts +10 -10
  123. package/src/core/EVM/permits/types.ts +3 -16
  124. package/src/core/EVM/typeguards.ts +14 -4
  125. package/src/core/EVM/types.ts +2 -6
  126. package/src/core/StatusManager.ts +5 -3
  127. package/src/core/prepareRestart.ts +14 -2
  128. package/src/core/types.ts +2 -0
  129. package/src/index.ts +1 -1
  130. package/src/services/api.ts +3 -6
  131. package/src/version.ts +1 -1
  132. package/src/_cjs/core/EVM/permits/signNativePermitMessage.js +0 -20
  133. package/src/_cjs/core/EVM/permits/signNativePermitMessage.js.map +0 -1
  134. package/src/_cjs/core/EVM/permits/utils.js +0 -31
  135. package/src/_cjs/core/EVM/permits/utils.js.map +0 -1
  136. package/src/_esm/core/EVM/permits/signNativePermitMessage.js +0 -16
  137. package/src/_esm/core/EVM/permits/signNativePermitMessage.js.map +0 -1
  138. package/src/_esm/core/EVM/permits/utils.js +0 -26
  139. package/src/_esm/core/EVM/permits/utils.js.map +0 -1
  140. package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts +0 -4
  141. package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts.map +0 -1
  142. package/src/_types/core/EVM/permits/utils.d.ts +0 -6
  143. package/src/_types/core/EVM/permits/utils.d.ts.map +0 -1
  144. package/src/core/EVM/permits/signNativePermitMessage.ts +0 -27
  145. package/src/core/EVM/permits/utils.ts +0 -40
@@ -16,125 +16,110 @@ const connection_js_1 = require("./connection.js");
16
16
  const parseSolanaErrors_js_1 = require("./parseSolanaErrors.js");
17
17
  const sendAndConfirmTransaction_js_1 = require("./sendAndConfirmTransaction.js");
18
18
  class SolanaStepExecutor extends BaseStepExecutor_js_1.BaseStepExecutor {
19
+ walletAdapter;
19
20
  constructor(options) {
20
21
  super(options);
21
- Object.defineProperty(this, "walletAdapter", {
22
- enumerable: true,
23
- configurable: true,
24
- writable: true,
25
- value: void 0
22
+ this.walletAdapter = options.walletAdapter;
23
+ }
24
+ checkWalletAdapter = (step) => {
25
+ if (this.walletAdapter.publicKey.toString() !== step.action.fromAddress) {
26
+ throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.WalletChangedDuringExecution, 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.');
27
+ }
28
+ };
29
+ executeStep = async (step) => {
30
+ step.execution = this.statusManager.initExecutionObject(step);
31
+ const fromChain = await config_js_1.config.getChainById(step.action.fromChainId);
32
+ const toChain = await config_js_1.config.getChainById(step.action.toChainId);
33
+ const isBridgeExecution = fromChain.id !== toChain.id;
34
+ const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
35
+ let process = this.statusManager.findOrCreateProcess({
36
+ step,
37
+ type: currentProcessType,
38
+ chainId: fromChain.id,
26
39
  });
27
- Object.defineProperty(this, "checkWalletAdapter", {
28
- enumerable: true,
29
- configurable: true,
30
- writable: true,
31
- value: (step) => {
32
- if (this.walletAdapter.publicKey.toString() !== step.action.fromAddress) {
33
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.WalletChangedDuringExecution, 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.');
40
+ if (process.status !== 'DONE') {
41
+ try {
42
+ process = this.statusManager.updateProcess(step, process.type, 'STARTED');
43
+ await (0, checkBalance_js_1.checkBalance)(this.walletAdapter.publicKey.toString(), step);
44
+ if (!step.transactionRequest) {
45
+ const { execution, ...stepBase } = step;
46
+ const updatedStep = await (0, api_js_1.getStepTransaction)(stepBase);
47
+ const comparedStep = await (0, stepComparison_js_1.stepComparison)(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
48
+ Object.assign(step, {
49
+ ...comparedStep,
50
+ execution: step.execution,
51
+ });
34
52
  }
35
- }
36
- });
37
- Object.defineProperty(this, "executeStep", {
38
- enumerable: true,
39
- configurable: true,
40
- writable: true,
41
- value: async (step) => {
42
- step.execution = this.statusManager.initExecutionObject(step);
43
- const fromChain = await config_js_1.config.getChainById(step.action.fromChainId);
44
- const toChain = await config_js_1.config.getChainById(step.action.toChainId);
45
- const isBridgeExecution = fromChain.id !== toChain.id;
46
- const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
47
- let process = this.statusManager.findOrCreateProcess({
48
- step,
49
- type: currentProcessType,
50
- chainId: fromChain.id,
53
+ if (!step.transactionRequest?.data) {
54
+ throw new errors_js_1.TransactionError(constants_js_1.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 errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
75
+ }
76
+ const versionedTransaction = web3_js_1.VersionedTransaction.deserialize((0, base64ToUint8Array_js_1.base64ToUint8Array)(transactionRequest.data));
77
+ this.checkWalletAdapter(step);
78
+ const signedTx = await (0, viem_1.withTimeout)(() => this.walletAdapter.signTransaction(versionedTransaction), {
79
+ timeout: 120_000,
80
+ errorInstance: new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionExpired, 'Transaction has expired: blockhash is no longer recent enough.'),
51
81
  });
52
- if (process.status !== 'DONE') {
53
- try {
54
- process = this.statusManager.updateProcess(step, process.type, 'STARTED');
55
- await (0, checkBalance_js_1.checkBalance)(this.walletAdapter.publicKey.toString(), step);
56
- if (!step.transactionRequest) {
57
- const { execution, ...stepBase } = step;
58
- const updatedStep = await (0, api_js_1.getStepTransaction)(stepBase);
59
- const comparedStep = await (0, stepComparison_js_1.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 errors_js_1.TransactionError(constants_js_1.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 errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
87
- }
88
- const versionedTransaction = web3_js_1.VersionedTransaction.deserialize((0, base64ToUint8Array_js_1.base64ToUint8Array)(transactionRequest.data));
89
- this.checkWalletAdapter(step);
90
- const signedTx = await (0, viem_1.withTimeout)(() => this.walletAdapter.signTransaction(versionedTransaction), {
91
- timeout: 120_000,
92
- errorInstance: new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionExpired, 'Transaction has expired: blockhash is no longer recent enough.'),
93
- });
94
- process = this.statusManager.updateProcess(step, process.type, 'PENDING');
95
- const simulationResult = await (0, connection_js_1.callSolanaWithRetry)((connection) => connection.simulateTransaction(signedTx, {
96
- commitment: 'confirmed',
97
- replaceRecentBlockhash: true,
98
- }));
99
- if (simulationResult.value.err) {
100
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionSimulationFailed, 'Transaction simulation failed');
101
- }
102
- const confirmedTx = await (0, sendAndConfirmTransaction_js_1.sendAndConfirmTransaction)(signedTx);
103
- if (!confirmedTx.signatureResult) {
104
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionExpired, 'Transaction has expired: The block height has exceeded the maximum allowed limit.');
105
- }
106
- if (confirmedTx.signatureResult.err) {
107
- const reason = typeof confirmedTx.signatureResult.err === 'object'
108
- ? JSON.stringify(confirmedTx.signatureResult.err)
109
- : confirmedTx.signatureResult.err;
110
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionFailed, `Transaction failed: ${reason}`);
111
- }
112
- process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
113
- txHash: confirmedTx.txSignature,
114
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${confirmedTx.txSignature}`,
115
- });
116
- if (isBridgeExecution) {
117
- process = this.statusManager.updateProcess(step, process.type, 'DONE');
118
- }
119
- }
120
- catch (e) {
121
- const error = await (0, parseSolanaErrors_js_1.parseSolanaErrors)(e, step, process);
122
- process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
123
- error: {
124
- message: error.cause.message,
125
- code: error.code,
126
- },
127
- });
128
- this.statusManager.updateExecution(step, 'FAILED');
129
- throw error;
130
- }
82
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING');
83
+ const simulationResult = await (0, connection_js_1.callSolanaWithRetry)((connection) => connection.simulateTransaction(signedTx, {
84
+ commitment: 'confirmed',
85
+ replaceRecentBlockhash: true,
86
+ }));
87
+ if (simulationResult.value.err) {
88
+ throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionSimulationFailed, 'Transaction simulation failed');
89
+ }
90
+ const confirmedTx = await (0, sendAndConfirmTransaction_js_1.sendAndConfirmTransaction)(signedTx);
91
+ if (!confirmedTx.signatureResult) {
92
+ throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionExpired, 'Transaction has expired: The block height has exceeded the maximum allowed limit.');
93
+ }
94
+ if (confirmedTx.signatureResult.err) {
95
+ const reason = typeof confirmedTx.signatureResult.err === 'object'
96
+ ? JSON.stringify(confirmedTx.signatureResult.err)
97
+ : confirmedTx.signatureResult.err;
98
+ throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionFailed, `Transaction failed: ${reason}`);
99
+ }
100
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
101
+ txHash: confirmedTx.txSignature,
102
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${confirmedTx.txSignature}`,
103
+ });
104
+ if (isBridgeExecution) {
105
+ process = this.statusManager.updateProcess(step, process.type, 'DONE');
131
106
  }
132
- await (0, waitForDestinationChainTransaction_js_1.waitForDestinationChainTransaction)(step, process, fromChain, toChain, this.statusManager);
133
- return step;
134
107
  }
135
- });
136
- this.walletAdapter = options.walletAdapter;
137
- }
108
+ catch (e) {
109
+ const error = await (0, parseSolanaErrors_js_1.parseSolanaErrors)(e, step, process);
110
+ process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
111
+ error: {
112
+ message: error.cause.message,
113
+ code: error.code,
114
+ },
115
+ });
116
+ this.statusManager.updateExecution(step, 'FAILED');
117
+ throw error;
118
+ }
119
+ }
120
+ await (0, waitForDestinationChainTransaction_js_1.waitForDestinationChainTransaction)(step, process, fromChain, toChain, this.statusManager);
121
+ return step;
122
+ };
138
123
  }
139
124
  exports.SolanaStepExecutor = SolanaStepExecutor;
140
125
  //# 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":";;;AAEA,6CAAsD;AACtD,+BAAkC;AAClC,+CAAwC;AACxC,4DAAyD;AACzD,sDAAyD;AACzD,kDAA0D;AAC1D,6EAAsE;AACtE,gEAAyD;AACzD,wDAAiD;AACjD,4DAAqD;AAMrD,oGAA6F;AAC7F,mDAAqD;AACrD,iEAA0D;AAC1D,iFAA0E;AAM1E,MAAa,kBAAmB,SAAQ,sCAAgB;IAC9C,aAAa,CAAqB;IAE1C,YAAY,OAAkC;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,kBAAkB,GAAG,CAAC,IAAsB,EAAE,EAAE;QAE9C,IAAI,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACzE,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,4BAA4B,EAC1C,mHAAmH,CACpH,CAAA;QACH,CAAC;IACH,CAAC,CAAA;IAED,WAAW,GAAG,KAAK,EAAE,IAAsB,EAA6B,EAAE;QACxE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAE7D,MAAM,SAAS,GAAG,MAAM,kBAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACpE,MAAM,OAAO,GAAG,MAAM,kBAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAEhE,MAAM,iBAAiB,GAAG,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAA;QACrD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;QAErE,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;YACnD,IAAI;YACJ,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,SAAS,CAAC,EAAE;SACtB,CAAC,CAAA;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,SAAS,CACV,CAAA;gBAGD,MAAM,IAAA,8BAAY,EAAC,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;gBAGlE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAA;oBACvC,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAkB,EAAC,QAAQ,CAAC,CAAA;oBACtD,MAAM,YAAY,GAAG,MAAM,IAAA,kCAAc,EACvC,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,gBAAgB,CACtB,CAAA;oBACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;wBAClB,GAAG,YAAY;wBACf,SAAS,EAAE,IAAI,CAAC,SAAS;qBAC1B,CAAC,CAAA;gBACJ,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;oBACnC,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,qBAAqB,EACnC,gCAAgC,CACjC,CAAA;gBACH,CAAC;gBAED,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,iBAAiB,CAClB,CAAA;gBAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,IAAI,kBAAkB,GAA0B;oBAC9C,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;iBACnC,CAAA;gBAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;oBACxD,MAAM,4BAA4B,GAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;wBACvD,WAAW,EAAE,aAAa;wBAC1B,GAAG,kBAAkB;qBACtB,CAAC,CAAA;oBAEJ,kBAAkB,GAAG;wBACnB,GAAG,kBAAkB;wBACrB,GAAG,4BAA4B;qBAChC,CAAA;gBACH,CAAC;gBAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;oBAC7B,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,qBAAqB,EACnC,gCAAgC,CACjC,CAAA;gBACH,CAAC;gBAED,MAAM,oBAAoB,GAAG,8BAAoB,CAAC,WAAW,CAC3D,IAAA,0CAAkB,EAAC,kBAAkB,CAAC,IAAI,CAAC,CAC5C,CAAA;gBAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAG7B,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAW,EAChC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAC9D;oBAGE,OAAO,EAAE,OAAO;oBAChB,aAAa,EAAE,IAAI,4BAAgB,CACjC,4BAAa,CAAC,kBAAkB,EAChC,gEAAgE,CACjE;iBACF,CACF,CAAA;gBAED,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,SAAS,CACV,CAAA;gBAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,mCAAmB,EAAC,CAAC,UAAU,EAAE,EAAE,CAChE,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBACvC,UAAU,EAAE,WAAW;oBACvB,sBAAsB,EAAE,IAAI;iBAC7B,CAAC,CACH,CAAA;gBAED,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;oBAC/B,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,2BAA2B,EACzC,+BAA+B,CAChC,CAAA;gBACH,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,IAAA,wDAAyB,EAAC,QAAQ,CAAC,CAAA;gBAE7D,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;oBACjC,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,kBAAkB,EAChC,mFAAmF,CACpF,CAAA;gBACH,CAAC;gBAED,IAAI,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;oBACpC,MAAM,MAAM,GACV,OAAO,WAAW,CAAC,eAAe,CAAC,GAAG,KAAK,QAAQ;wBACjD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC;wBACjD,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAA;oBACrC,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,iBAAiB,EAC/B,uBAAuB,MAAM,EAAE,CAChC,CAAA;gBACH,CAAC;gBAGD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,SAAS,EACT;oBACE,MAAM,EAAE,WAAW,CAAC,WAAW;oBAC/B,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,WAAW,EAAE;iBAClF,CACF,CAAA;gBAED,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBACxE,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,IAAA,wCAAiB,EAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;gBACvD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,QAAQ,EACR;oBACE,KAAK,EAAE;wBACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;wBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB;iBACF,CACF,CAAA;gBACD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;gBAClD,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,MAAM,IAAA,0EAAkC,EACtC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,EACP,IAAI,CAAC,aAAa,CACnB,CAAA;QAGD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;CACF;AA7MD,gDA6MC"}
@@ -4,150 +4,35 @@ exports.StatusManager = void 0;
4
4
  const executionState_js_1 = require("./executionState.js");
5
5
  const processMessages_js_1 = require("./processMessages.js");
6
6
  class StatusManager {
7
+ routeId;
8
+ shouldUpdate = true;
7
9
  constructor(routeId) {
8
- Object.defineProperty(this, "routeId", {
9
- enumerable: true,
10
- configurable: true,
11
- writable: true,
12
- value: void 0
13
- });
14
- Object.defineProperty(this, "shouldUpdate", {
15
- enumerable: true,
16
- configurable: true,
17
- writable: true,
18
- value: true
19
- });
20
- Object.defineProperty(this, "initExecutionObject", {
21
- enumerable: true,
22
- configurable: true,
23
- writable: true,
24
- value: (step) => {
25
- if (!step.execution) {
26
- step.execution = {
27
- status: 'PENDING',
28
- process: [],
29
- };
30
- this.updateStepInRoute(step);
31
- }
32
- if (step.execution.status === 'FAILED') {
33
- step.execution.status = 'PENDING';
34
- this.updateStepInRoute(step);
35
- }
36
- return step.execution;
37
- }
38
- });
39
- Object.defineProperty(this, "findOrCreateProcess", {
40
- enumerable: true,
41
- configurable: true,
42
- writable: true,
43
- value: ({ step, type, chainId, status, }) => {
44
- const process = this.findProcess(step, type, status);
45
- if (process) {
46
- return process;
47
- }
48
- const newProcess = {
49
- type: type,
50
- startedAt: Date.now(),
51
- message: (0, processMessages_js_1.getProcessMessage)(type, status ?? 'STARTED'),
52
- status: status ?? 'STARTED',
53
- chainId: chainId,
54
- };
55
- step.execution.process.push(newProcess);
56
- this.updateStepInRoute(step);
57
- return newProcess;
58
- }
59
- });
60
- Object.defineProperty(this, "updateProcess", {
61
- enumerable: true,
62
- configurable: true,
63
- writable: true,
64
- value: (step, type, status, params) => {
65
- if (!step.execution) {
66
- throw new Error("Can't update an empty step execution.");
67
- }
68
- const currentProcess = this.findProcess(step, type);
69
- if (!currentProcess) {
70
- throw new Error("Can't find a process for the given type.");
71
- }
72
- switch (status) {
73
- case 'STARTED':
74
- currentProcess.startedAt = Date.now();
75
- break;
76
- case 'CANCELLED':
77
- currentProcess.doneAt = Date.now();
78
- break;
79
- case 'FAILED':
80
- currentProcess.doneAt = Date.now();
81
- step.execution.status = 'FAILED';
82
- break;
83
- case 'DONE':
84
- currentProcess.doneAt = Date.now();
85
- break;
86
- case 'PENDING':
87
- step.execution.status = 'PENDING';
88
- break;
89
- case 'ACTION_REQUIRED':
90
- step.execution.status = 'ACTION_REQUIRED';
91
- break;
92
- default:
93
- break;
94
- }
95
- currentProcess.status = status;
96
- currentProcess.message = (0, processMessages_js_1.getProcessMessage)(type, status);
97
- if (params) {
98
- for (const [key, value] of Object.entries(params)) {
99
- currentProcess[key] = value;
100
- }
101
- }
102
- step.execution.process = [
103
- ...step.execution.process.filter((process) => process.status === 'DONE'),
104
- ...step.execution.process.filter((process) => process.status !== 'DONE'),
105
- ];
106
- this.updateStepInRoute(step);
107
- return currentProcess;
108
- }
109
- });
110
- Object.defineProperty(this, "removeProcess", {
111
- enumerable: true,
112
- configurable: true,
113
- writable: true,
114
- value: (step, type) => {
115
- if (!step.execution) {
116
- throw new Error("Execution hasn't been initialized.");
117
- }
118
- const index = step.execution.process.findIndex((p) => p.type === type);
119
- step.execution.process.splice(index, 1);
120
- this.updateStepInRoute(step);
121
- }
122
- });
123
- Object.defineProperty(this, "updateStepInRoute", {
124
- enumerable: true,
125
- configurable: true,
126
- writable: true,
127
- value: (step) => {
128
- if (!this.shouldUpdate) {
129
- return step;
130
- }
131
- const data = executionState_js_1.executionState.get(this.routeId);
132
- if (!data) {
133
- throw new Error('Execution data not found.');
134
- }
135
- const stepIndex = data.route.steps.findIndex((routeStep) => routeStep.id === step.id);
136
- if (stepIndex === -1) {
137
- throw new Error("Couldn't find a step to update.");
138
- }
139
- data.route.steps[stepIndex] = { ...data.route.steps[stepIndex], ...step };
140
- data.executionOptions?.updateRouteHook?.(data.route);
141
- return data.route.steps[stepIndex];
142
- }
143
- });
144
10
  this.routeId = routeId;
145
11
  }
12
+ initExecutionObject = (step) => {
13
+ if (!step.execution) {
14
+ step.execution = {
15
+ status: 'PENDING',
16
+ process: [],
17
+ startedAt: Date.now(),
18
+ };
19
+ this.updateStepInRoute(step);
20
+ }
21
+ if (step.execution.status === 'FAILED') {
22
+ step.execution.startedAt = Date.now();
23
+ step.execution.status = 'PENDING';
24
+ this.updateStepInRoute(step);
25
+ }
26
+ return step.execution;
27
+ };
146
28
  updateExecution(step, status, execution) {
147
29
  if (!step.execution) {
148
30
  throw Error("Can't update empty execution.");
149
31
  }
150
32
  step.execution.status = status;
33
+ if (status === 'DONE') {
34
+ step.execution.doneAt = Date.now();
35
+ }
151
36
  if (execution) {
152
37
  step.execution = {
153
38
  ...step.execution,
@@ -168,6 +53,88 @@ class StatusManager {
168
53
  }
169
54
  return process;
170
55
  }
56
+ findOrCreateProcess = ({ step, type, chainId, status, }) => {
57
+ const process = this.findProcess(step, type, status);
58
+ if (process) {
59
+ return process;
60
+ }
61
+ const newProcess = {
62
+ type: type,
63
+ startedAt: Date.now(),
64
+ message: (0, processMessages_js_1.getProcessMessage)(type, status ?? 'STARTED'),
65
+ status: status ?? 'STARTED',
66
+ chainId: chainId,
67
+ };
68
+ step.execution.process.push(newProcess);
69
+ this.updateStepInRoute(step);
70
+ return newProcess;
71
+ };
72
+ updateProcess = (step, type, status, params) => {
73
+ if (!step.execution) {
74
+ throw new Error("Can't update an empty step execution.");
75
+ }
76
+ const currentProcess = this.findProcess(step, type);
77
+ if (!currentProcess) {
78
+ throw new Error("Can't find a process for the given type.");
79
+ }
80
+ switch (status) {
81
+ case 'CANCELLED':
82
+ currentProcess.doneAt = Date.now();
83
+ break;
84
+ case 'FAILED':
85
+ currentProcess.doneAt = Date.now();
86
+ step.execution.status = 'FAILED';
87
+ break;
88
+ case 'DONE':
89
+ currentProcess.doneAt = Date.now();
90
+ break;
91
+ case 'PENDING':
92
+ step.execution.status = 'PENDING';
93
+ break;
94
+ case 'ACTION_REQUIRED':
95
+ step.execution.status = 'ACTION_REQUIRED';
96
+ break;
97
+ default:
98
+ break;
99
+ }
100
+ currentProcess.status = status;
101
+ currentProcess.message = (0, processMessages_js_1.getProcessMessage)(type, status);
102
+ if (params) {
103
+ for (const [key, value] of Object.entries(params)) {
104
+ currentProcess[key] = value;
105
+ }
106
+ }
107
+ step.execution.process = [
108
+ ...step.execution.process.filter((process) => process.status === 'DONE'),
109
+ ...step.execution.process.filter((process) => process.status !== 'DONE'),
110
+ ];
111
+ this.updateStepInRoute(step);
112
+ return currentProcess;
113
+ };
114
+ removeProcess = (step, type) => {
115
+ if (!step.execution) {
116
+ throw new Error("Execution hasn't been initialized.");
117
+ }
118
+ const index = step.execution.process.findIndex((p) => p.type === type);
119
+ step.execution.process.splice(index, 1);
120
+ this.updateStepInRoute(step);
121
+ };
122
+ updateStepInRoute = (step) => {
123
+ if (!this.shouldUpdate) {
124
+ return step;
125
+ }
126
+ const data = executionState_js_1.executionState.get(this.routeId);
127
+ if (!data) {
128
+ throw new Error('Execution data not found.');
129
+ }
130
+ const stepIndex = data.route.steps.findIndex((routeStep) => routeStep.id === step.id);
131
+ if (stepIndex === -1) {
132
+ throw new Error("Couldn't find a step to update.");
133
+ }
134
+ data.route.steps[stepIndex] = { ...data.route.steps[stepIndex], ...step };
135
+ data.executionOptions?.updateRouteHook?.(data.route);
136
+ return data.route.steps[stepIndex];
137
+ };
171
138
  allowUpdates(value) {
172
139
  this.shouldUpdate = value;
173
140
  }
@@ -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":"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"}