@lifi/sdk 4.0.1-alpha.0 → 4.1.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.
- package/CHANGELOG.md +1233 -0
- package/README.md +88 -5
- package/dist/cjs/actions/getChains.d.ts +17 -4
- package/dist/cjs/actions/getChains.js +22 -19
- package/dist/cjs/actions/getChains.js.map +1 -1
- package/dist/cjs/actions/getConnections.d.ts +15 -3
- package/dist/cjs/actions/getConnections.js +30 -35
- package/dist/cjs/actions/getConnections.js.map +1 -1
- package/dist/cjs/actions/getContractCallsQuote.d.ts +16 -3
- package/dist/cjs/actions/getContractCallsQuote.js +41 -42
- package/dist/cjs/actions/getContractCallsQuote.js.map +1 -1
- package/dist/cjs/actions/getGasRecommendation.d.ts +16 -3
- package/dist/cjs/actions/getGasRecommendation.js +20 -19
- package/dist/cjs/actions/getGasRecommendation.js.map +1 -1
- package/dist/cjs/actions/getNameServiceAddress.d.ts +15 -3
- package/dist/cjs/actions/getNameServiceAddress.js +25 -27
- package/dist/cjs/actions/getNameServiceAddress.js.map +1 -1
- package/dist/cjs/actions/getQuote.d.ts +18 -5
- package/dist/cjs/actions/getQuote.js +33 -45
- package/dist/cjs/actions/getQuote.js.map +1 -1
- package/dist/cjs/actions/getRelayedTransactionStatus.d.ts +16 -3
- package/dist/cjs/actions/getRelayedTransactionStatus.js +26 -26
- package/dist/cjs/actions/getRelayedTransactionStatus.js.map +1 -1
- package/dist/cjs/actions/getRelayerQuote.d.ts +17 -4
- package/dist/cjs/actions/getRelayerQuote.js +40 -44
- package/dist/cjs/actions/getRelayerQuote.js.map +1 -1
- package/dist/cjs/actions/getRoutes.d.ts +17 -3
- package/dist/cjs/actions/getRoutes.js +28 -23
- package/dist/cjs/actions/getRoutes.js.map +1 -1
- package/dist/cjs/actions/getStatus.d.ts +17 -4
- package/dist/cjs/actions/getStatus.js +18 -14
- package/dist/cjs/actions/getStatus.js.map +1 -1
- package/dist/cjs/actions/getStepTransaction.d.ts +17 -3
- package/dist/cjs/actions/getStepTransaction.js +32 -24
- package/dist/cjs/actions/getStepTransaction.js.map +1 -1
- package/dist/cjs/actions/getToken.d.ts +17 -3
- package/dist/cjs/actions/getToken.js +22 -18
- package/dist/cjs/actions/getToken.js.map +1 -1
- package/dist/cjs/actions/getTokenBalance.d.ts +17 -3
- package/dist/cjs/actions/getTokenBalance.js +16 -6
- package/dist/cjs/actions/getTokenBalance.js.map +1 -1
- package/dist/cjs/actions/getTokenBalances.d.ts +17 -3
- package/dist/cjs/actions/getTokenBalances.js +12 -13
- package/dist/cjs/actions/getTokenBalances.js.map +1 -1
- package/dist/cjs/actions/getTokenBalancesByChain.d.ts +19 -5
- package/dist/cjs/actions/getTokenBalancesByChain.js +22 -37
- package/dist/cjs/actions/getTokenBalancesByChain.js.map +1 -1
- package/dist/cjs/actions/getTokens.d.ts +18 -6
- package/dist/cjs/actions/getTokens.js +14 -18
- package/dist/cjs/actions/getTokens.js.map +1 -1
- package/dist/cjs/actions/getTools.d.ts +15 -3
- package/dist/cjs/actions/getTools.js +17 -14
- package/dist/cjs/actions/getTools.js.map +1 -1
- package/dist/cjs/actions/getTransactionHistory.d.ts +26 -3
- package/dist/cjs/actions/getTransactionHistory.js +27 -21
- package/dist/cjs/actions/getTransactionHistory.js.map +1 -1
- package/dist/cjs/actions/getWalletBalances.d.ts +16 -3
- package/dist/cjs/actions/getWalletBalances.js +16 -12
- package/dist/cjs/actions/getWalletBalances.js.map +1 -1
- package/dist/cjs/actions/index.d.ts +174 -39
- package/dist/cjs/actions/index.js +49 -47
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/patchContractCalls.d.ts +14 -9
- package/dist/cjs/actions/patchContractCalls.js +11 -12
- package/dist/cjs/actions/patchContractCalls.js.map +1 -1
- package/dist/cjs/actions/relayTransaction.d.ts +16 -3
- package/dist/cjs/actions/relayTransaction.js +30 -34
- package/dist/cjs/actions/relayTransaction.js.map +1 -1
- package/dist/cjs/client/createClient.d.ts +7 -2
- package/dist/cjs/client/createClient.js +67 -75
- package/dist/cjs/client/createClient.js.map +1 -1
- package/dist/cjs/client/getClientStorage.d.ts +14 -8
- package/dist/cjs/client/getClientStorage.js +44 -47
- package/dist/cjs/client/getClientStorage.js.map +1 -1
- package/dist/cjs/core/BaseStepExecutionTask.d.ts +10 -0
- package/dist/cjs/core/BaseStepExecutionTask.js +11 -0
- package/dist/cjs/core/BaseStepExecutionTask.js.map +1 -0
- package/dist/cjs/core/BaseStepExecutor.d.ts +23 -11
- package/dist/cjs/core/BaseStepExecutor.js +67 -26
- package/dist/cjs/core/BaseStepExecutor.js.map +1 -1
- package/dist/cjs/core/StatusManager.d.ts +81 -20
- package/dist/cjs/core/StatusManager.js +158 -137
- package/dist/cjs/core/StatusManager.js.map +1 -1
- package/dist/cjs/core/TaskPipeline.d.ts +12 -0
- package/dist/cjs/core/TaskPipeline.js +21 -0
- package/dist/cjs/core/TaskPipeline.js.map +1 -0
- package/dist/cjs/core/actionMessages.d.ts +9 -4
- package/dist/cjs/core/actionMessages.js +72 -58
- package/dist/cjs/core/actionMessages.js.map +1 -1
- package/dist/cjs/core/execution.d.ts +48 -8
- package/dist/cjs/core/execution.js +131 -121
- package/dist/cjs/core/execution.js.map +1 -1
- package/dist/cjs/core/executionState.d.ts +17 -13
- package/dist/cjs/core/executionState.js +27 -27
- package/dist/cjs/core/executionState.js.map +1 -1
- package/dist/cjs/core/prepareRestart.d.ts +7 -2
- package/dist/cjs/core/prepareRestart.js +17 -19
- package/dist/cjs/core/prepareRestart.js.map +1 -1
- package/dist/cjs/core/storage.d.ts +21 -0
- package/dist/cjs/core/storage.js +35 -0
- package/dist/cjs/core/storage.js.map +1 -0
- package/dist/cjs/core/tasks/CheckBalanceTask.d.ts +19 -0
- package/dist/cjs/core/tasks/CheckBalanceTask.js +35 -0
- package/dist/cjs/core/tasks/CheckBalanceTask.js.map +1 -0
- package/dist/cjs/core/tasks/PrepareTransactionTask.d.ts +10 -0
- package/dist/cjs/core/tasks/PrepareTransactionTask.js +30 -0
- package/dist/cjs/core/tasks/PrepareTransactionTask.js.map +1 -0
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.d.ts +13 -0
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js +63 -0
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
- package/dist/cjs/core/tasks/helpers/checkBalance.d.ts +30 -0
- package/dist/cjs/core/tasks/helpers/checkBalance.js +108 -0
- package/dist/cjs/core/tasks/helpers/checkBalance.js.map +1 -0
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.d.ts +7 -0
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js +25 -0
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
- package/dist/cjs/core/tasks/helpers/stepComparison.d.ts +21 -0
- package/dist/cjs/core/tasks/helpers/stepComparison.js +32 -0
- package/dist/cjs/core/tasks/helpers/stepComparison.js.map +1 -0
- package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.d.ts +9 -0
- package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js +48 -0
- package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
- package/dist/cjs/core/utils.d.ts +17 -86
- package/dist/cjs/core/utils.js +37 -38
- package/dist/cjs/core/utils.js.map +1 -1
- package/dist/cjs/errors/SDKError.d.ts +16 -11
- package/dist/cjs/errors/SDKError.js +22 -21
- package/dist/cjs/errors/SDKError.js.map +1 -1
- package/dist/cjs/errors/baseError.d.ts +10 -5
- package/dist/cjs/errors/baseError.js +17 -18
- package/dist/cjs/errors/baseError.js.map +1 -1
- package/dist/cjs/errors/constants.d.ts +52 -47
- package/dist/cjs/errors/constants.js +60 -55
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/errors/errors.d.ts +31 -16
- package/dist/cjs/errors/errors.js +57 -43
- package/dist/cjs/errors/errors.js.map +1 -1
- package/dist/cjs/errors/httpError.d.ts +21 -17
- package/dist/cjs/errors/httpError.js +63 -66
- package/dist/cjs/errors/httpError.js.map +1 -1
- package/dist/cjs/errors/utils/baseErrorRootCause.d.ts +8 -3
- package/dist/cjs/errors/utils/baseErrorRootCause.js +12 -15
- package/dist/cjs/errors/utils/baseErrorRootCause.js.map +1 -1
- package/dist/cjs/errors/utils/rootCause.d.ts +5 -1
- package/dist/cjs/errors/utils/rootCause.js +7 -8
- package/dist/cjs/errors/utils/rootCause.js.map +1 -1
- package/dist/cjs/index.d.ts +56 -46
- package/dist/cjs/index.js +130 -119
- package/dist/cjs/types/actions.d.ts +32 -7
- package/dist/cjs/types/actions.js +0 -3
- package/dist/cjs/types/core.d.ts +181 -164
- package/dist/cjs/types/core.js +0 -3
- package/dist/cjs/types/execution.d.ts +28 -0
- package/dist/cjs/types/execution.js +0 -0
- package/dist/cjs/types/request.d.ts +6 -2
- package/dist/cjs/types/request.js +0 -3
- package/dist/cjs/utils/checkPackageUpdates.d.ts +5 -1
- package/dist/cjs/utils/checkPackageUpdates.js +11 -16
- package/dist/cjs/utils/checkPackageUpdates.js.map +1 -1
- package/dist/cjs/utils/convertQuoteToRoute.d.ts +20 -5
- package/dist/cjs/utils/convertQuoteToRoute.js +72 -85
- package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -1
- package/dist/cjs/utils/decode.d.ts +5 -1
- package/dist/cjs/utils/decode.js +5 -10
- package/dist/cjs/utils/decode.js.map +1 -1
- package/dist/cjs/utils/fetchTxErrorDetails.d.ts +5 -1
- package/dist/cjs/utils/fetchTxErrorDetails.js +9 -9
- package/dist/cjs/utils/fetchTxErrorDetails.js.map +1 -1
- package/dist/cjs/utils/formatUnits.d.ts +8 -1
- package/dist/cjs/utils/formatUnits.js +15 -15
- package/dist/cjs/utils/formatUnits.js.map +1 -1
- package/dist/cjs/utils/getTransactionMessage.d.ts +8 -3
- package/dist/cjs/utils/getTransactionMessage.js +8 -10
- package/dist/cjs/utils/getTransactionMessage.js.map +1 -1
- package/dist/cjs/utils/isHex.d.ts +9 -3
- package/dist/cjs/utils/isHex.js +8 -10
- package/dist/cjs/utils/isHex.js.map +1 -1
- package/dist/cjs/utils/isRoutesRequest.d.ts +7 -2
- package/dist/cjs/utils/isRoutesRequest.js +7 -14
- package/dist/cjs/utils/isRoutesRequest.js.map +1 -1
- package/dist/cjs/utils/isStep.d.ts +7 -2
- package/dist/cjs/utils/isStep.js +16 -25
- package/dist/cjs/utils/isStep.js.map +1 -1
- package/dist/cjs/utils/isToken.d.ts +7 -2
- package/dist/cjs/utils/isToken.js +6 -7
- package/dist/cjs/utils/isToken.js.map +1 -1
- package/dist/cjs/utils/parseUnits.d.ts +8 -1
- package/dist/cjs/utils/parseUnits.js +32 -41
- package/dist/cjs/utils/parseUnits.js.map +1 -1
- package/dist/cjs/utils/request.d.ts +10 -5
- package/dist/cjs/utils/request.js +53 -69
- package/dist/cjs/utils/request.js.map +1 -1
- package/dist/cjs/utils/sleep.d.ts +5 -1
- package/dist/cjs/utils/sleep.js +8 -6
- package/dist/cjs/utils/sleep.js.map +1 -1
- package/dist/cjs/utils/toQueryString.d.ts +5 -0
- package/dist/cjs/utils/toQueryString.js +17 -0
- package/dist/cjs/utils/toQueryString.js.map +1 -0
- package/dist/cjs/utils/waitForResult.d.ts +14 -1
- package/dist/cjs/utils/waitForResult.js +33 -26
- package/dist/cjs/utils/waitForResult.js.map +1 -1
- package/dist/cjs/utils/withDedupe.d.ts +21 -4
- package/dist/cjs/utils/withDedupe.js +31 -27
- package/dist/cjs/utils/withDedupe.js.map +1 -1
- package/dist/cjs/utils/withTimeout.d.ts +26 -0
- package/dist/cjs/utils/withTimeout.js +35 -0
- package/dist/cjs/utils/withTimeout.js.map +1 -0
- package/dist/cjs/version.d.ts +6 -2
- package/dist/cjs/version.js +8 -5
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/actions/getChains.d.ts +16 -11
- package/dist/esm/actions/getChains.d.ts.map +1 -0
- package/dist/esm/actions/getChains.js +22 -24
- package/dist/esm/actions/getChains.js.map +1 -1
- package/dist/esm/actions/getConnections.d.ts +14 -9
- package/dist/esm/actions/getConnections.d.ts.map +1 -0
- package/dist/esm/actions/getConnections.js +30 -39
- package/dist/esm/actions/getConnections.js.map +1 -1
- package/dist/esm/actions/getContractCallsQuote.d.ts +15 -10
- package/dist/esm/actions/getContractCallsQuote.d.ts.map +1 -0
- package/dist/esm/actions/getContractCallsQuote.js +41 -51
- package/dist/esm/actions/getContractCallsQuote.js.map +1 -1
- package/dist/esm/actions/getGasRecommendation.d.ts +15 -10
- package/dist/esm/actions/getGasRecommendation.d.ts.map +1 -0
- package/dist/esm/actions/getGasRecommendation.js +20 -24
- package/dist/esm/actions/getGasRecommendation.js.map +1 -1
- package/dist/esm/actions/getNameServiceAddress.d.ts +14 -9
- package/dist/esm/actions/getNameServiceAddress.d.ts.map +1 -0
- package/dist/esm/actions/getNameServiceAddress.js +25 -31
- package/dist/esm/actions/getNameServiceAddress.js.map +1 -1
- package/dist/esm/actions/getQuote.d.ts +17 -12
- package/dist/esm/actions/getQuote.d.ts.map +1 -0
- package/dist/esm/actions/getQuote.js +33 -44
- package/dist/esm/actions/getQuote.js.map +1 -1
- package/dist/esm/actions/getRelayedTransactionStatus.d.ts +15 -10
- package/dist/esm/actions/getRelayedTransactionStatus.d.ts.map +1 -0
- package/dist/esm/actions/getRelayedTransactionStatus.js +26 -32
- package/dist/esm/actions/getRelayedTransactionStatus.js.map +1 -1
- package/dist/esm/actions/getRelayerQuote.d.ts +16 -11
- package/dist/esm/actions/getRelayerQuote.d.ts.map +1 -0
- package/dist/esm/actions/getRelayerQuote.js +40 -50
- package/dist/esm/actions/getRelayerQuote.js.map +1 -1
- package/dist/esm/actions/getRoutes.d.ts +16 -10
- package/dist/esm/actions/getRoutes.d.ts.map +1 -0
- package/dist/esm/actions/getRoutes.js +28 -29
- package/dist/esm/actions/getRoutes.js.map +1 -1
- package/dist/esm/actions/getStatus.d.ts +16 -11
- package/dist/esm/actions/getStatus.d.ts.map +1 -0
- package/dist/esm/actions/getStatus.js +18 -19
- package/dist/esm/actions/getStatus.js.map +1 -1
- package/dist/esm/actions/getStepTransaction.d.ts +16 -10
- package/dist/esm/actions/getStepTransaction.d.ts.map +1 -0
- package/dist/esm/actions/getStepTransaction.js +32 -31
- package/dist/esm/actions/getStepTransaction.js.map +1 -1
- package/dist/esm/actions/getToken.d.ts +16 -11
- package/dist/esm/actions/getToken.d.ts.map +1 -0
- package/dist/esm/actions/getToken.js +22 -24
- package/dist/esm/actions/getToken.js.map +1 -1
- package/dist/esm/actions/getTokenBalance.d.ts +16 -11
- package/dist/esm/actions/getTokenBalance.d.ts.map +1 -0
- package/dist/esm/actions/getTokenBalance.js +16 -12
- package/dist/esm/actions/getTokenBalance.js.map +1 -1
- package/dist/esm/actions/getTokenBalances.d.ts +16 -11
- package/dist/esm/actions/getTokenBalances.d.ts.map +1 -0
- package/dist/esm/actions/getTokenBalances.js +12 -12
- package/dist/esm/actions/getTokenBalances.js.map +1 -1
- package/dist/esm/actions/getTokenBalancesByChain.d.ts +18 -13
- package/dist/esm/actions/getTokenBalancesByChain.d.ts.map +1 -0
- package/dist/esm/actions/getTokenBalancesByChain.js +22 -37
- package/dist/esm/actions/getTokenBalancesByChain.js.map +1 -1
- package/dist/esm/actions/getTokens.d.ts +17 -12
- package/dist/esm/actions/getTokens.d.ts.map +1 -0
- package/dist/esm/actions/getTokens.js +14 -16
- package/dist/esm/actions/getTokens.js.map +1 -1
- package/dist/esm/actions/getTools.d.ts +14 -9
- package/dist/esm/actions/getTools.d.ts.map +1 -0
- package/dist/esm/actions/getTools.js +17 -18
- package/dist/esm/actions/getTools.js.map +1 -1
- package/dist/esm/actions/getTransactionHistory.d.ts +25 -15
- package/dist/esm/actions/getTransactionHistory.d.ts.map +1 -0
- package/dist/esm/actions/getTransactionHistory.js +27 -31
- package/dist/esm/actions/getTransactionHistory.js.map +1 -1
- package/dist/esm/actions/getWalletBalances.d.ts +15 -10
- package/dist/esm/actions/getWalletBalances.d.ts.map +1 -0
- package/dist/esm/actions/getWalletBalances.js +16 -17
- package/dist/esm/actions/getWalletBalances.js.map +1 -1
- package/dist/esm/actions/index.d.ts +174 -166
- package/dist/esm/actions/index.d.ts.map +1 -0
- package/dist/esm/actions/index.js +49 -45
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/patchContractCalls.d.ts +14 -9
- package/dist/esm/actions/patchContractCalls.d.ts.map +1 -0
- package/dist/esm/actions/patchContractCalls.js +12 -10
- package/dist/esm/actions/patchContractCalls.js.map +1 -1
- package/dist/esm/actions/relayTransaction.d.ts +15 -10
- package/dist/esm/actions/relayTransaction.d.ts.map +1 -0
- package/dist/esm/actions/relayTransaction.js +30 -41
- package/dist/esm/actions/relayTransaction.js.map +1 -1
- package/dist/esm/client/createClient.d.ts +7 -2
- package/dist/esm/client/createClient.d.ts.map +1 -0
- package/dist/esm/client/createClient.js +67 -74
- package/dist/esm/client/createClient.js.map +1 -1
- package/dist/esm/client/getClientStorage.d.ts +14 -8
- package/dist/esm/client/getClientStorage.d.ts.map +1 -0
- package/dist/esm/client/getClientStorage.js +45 -48
- package/dist/esm/client/getClientStorage.js.map +1 -1
- package/dist/esm/core/BaseStepExecutionTask.d.ts +10 -0
- package/dist/esm/core/BaseStepExecutionTask.d.ts.map +1 -0
- package/dist/esm/core/BaseStepExecutionTask.js +10 -0
- package/dist/esm/core/BaseStepExecutionTask.js.map +1 -0
- package/dist/esm/core/BaseStepExecutor.d.ts +23 -11
- package/dist/esm/core/BaseStepExecutor.d.ts.map +1 -0
- package/dist/esm/core/BaseStepExecutor.js +67 -24
- package/dist/esm/core/BaseStepExecutor.js.map +1 -1
- package/dist/esm/core/StatusManager.d.ts +80 -64
- package/dist/esm/core/StatusManager.d.ts.map +1 -0
- package/dist/esm/core/StatusManager.js +157 -181
- package/dist/esm/core/StatusManager.js.map +1 -1
- package/dist/esm/core/TaskPipeline.d.ts +12 -0
- package/dist/esm/core/TaskPipeline.d.ts.map +1 -0
- package/dist/esm/core/TaskPipeline.js +20 -0
- package/dist/esm/core/TaskPipeline.js.map +1 -0
- package/dist/esm/core/actionMessages.d.ts +9 -4
- package/dist/esm/core/actionMessages.d.ts.map +1 -0
- package/dist/esm/core/actionMessages.js +72 -56
- package/dist/esm/core/actionMessages.js.map +1 -1
- package/dist/esm/core/execution.d.ts +42 -37
- package/dist/esm/core/execution.d.ts.map +1 -0
- package/dist/esm/core/execution.js +126 -162
- package/dist/esm/core/execution.js.map +1 -1
- package/dist/esm/core/executionState.d.ts +17 -13
- package/dist/esm/core/executionState.d.ts.map +1 -0
- package/dist/esm/core/executionState.js +26 -24
- package/dist/esm/core/executionState.js.map +1 -1
- package/dist/esm/core/prepareRestart.d.ts +7 -2
- package/dist/esm/core/prepareRestart.d.ts.map +1 -0
- package/dist/esm/core/prepareRestart.js +18 -20
- package/dist/esm/core/prepareRestart.js.map +1 -1
- package/dist/esm/core/storage.d.ts +21 -0
- package/dist/esm/core/storage.d.ts.map +1 -0
- package/dist/esm/core/storage.js +32 -0
- package/dist/esm/core/storage.js.map +1 -0
- package/dist/esm/core/tasks/CheckBalanceTask.d.ts +19 -0
- package/dist/esm/core/tasks/CheckBalanceTask.d.ts.map +1 -0
- package/dist/esm/core/tasks/CheckBalanceTask.js +34 -0
- package/dist/esm/core/tasks/CheckBalanceTask.js.map +1 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.d.ts +10 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.d.ts.map +1 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.js +29 -0
- package/dist/esm/core/tasks/PrepareTransactionTask.js.map +1 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts +13 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts.map +1 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.js +61 -0
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
- package/dist/esm/core/tasks/helpers/checkBalance.d.ts +30 -0
- package/dist/esm/core/tasks/helpers/checkBalance.d.ts.map +1 -0
- package/dist/esm/core/tasks/helpers/checkBalance.js +107 -0
- package/dist/esm/core/tasks/helpers/checkBalance.js.map +1 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts +7 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts.map +1 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.js +24 -0
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
- package/dist/esm/core/tasks/helpers/stepComparison.d.ts +21 -0
- package/dist/esm/core/tasks/helpers/stepComparison.d.ts.map +1 -0
- package/dist/esm/core/tasks/helpers/stepComparison.js +31 -0
- package/dist/esm/core/tasks/helpers/stepComparison.js.map +1 -0
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts +9 -0
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts.map +1 -0
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js +47 -0
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
- package/dist/esm/core/utils.d.ts +16 -93
- package/dist/esm/core/utils.d.ts.map +1 -0
- package/dist/esm/core/utils.js +36 -45
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/errors/SDKError.d.ts +16 -11
- package/dist/esm/errors/SDKError.d.ts.map +1 -0
- package/dist/esm/errors/SDKError.js +22 -20
- package/dist/esm/errors/SDKError.js.map +1 -1
- package/dist/esm/errors/baseError.d.ts +10 -5
- package/dist/esm/errors/baseError.d.ts.map +1 -0
- package/dist/esm/errors/baseError.js +17 -17
- package/dist/esm/errors/baseError.js.map +1 -1
- package/dist/esm/errors/constants.d.ts +52 -47
- package/dist/esm/errors/constants.d.ts.map +1 -0
- package/dist/esm/errors/constants.js +57 -52
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/errors/errors.d.ts +31 -16
- package/dist/esm/errors/errors.d.ts.map +1 -0
- package/dist/esm/errors/errors.js +53 -37
- package/dist/esm/errors/errors.js.map +1 -1
- package/dist/esm/errors/httpError.d.ts +21 -17
- package/dist/esm/errors/httpError.d.ts.map +1 -0
- package/dist/esm/errors/httpError.js +63 -63
- package/dist/esm/errors/httpError.js.map +1 -1
- package/dist/esm/errors/utils/baseErrorRootCause.d.ts +8 -3
- package/dist/esm/errors/utils/baseErrorRootCause.d.ts.map +1 -0
- package/dist/esm/errors/utils/baseErrorRootCause.js +13 -13
- package/dist/esm/errors/utils/baseErrorRootCause.js.map +1 -1
- package/dist/esm/errors/utils/rootCause.d.ts +5 -1
- package/dist/esm/errors/utils/rootCause.d.ts.map +1 -0
- package/dist/esm/errors/utils/rootCause.js +8 -6
- package/dist/esm/errors/utils/rootCause.js.map +1 -1
- package/dist/esm/index.d.ts +56 -46
- package/dist/esm/index.js +53 -47
- package/dist/esm/package.json +1 -1
- package/dist/esm/types/actions.d.ts +32 -7
- package/dist/esm/types/actions.d.ts.map +1 -0
- package/dist/esm/types/actions.js +0 -1
- package/dist/esm/types/core.d.ts +181 -167
- package/dist/esm/types/core.d.ts.map +1 -0
- package/dist/esm/types/core.js +0 -1
- package/dist/esm/types/execution.d.ts +28 -0
- package/dist/esm/types/execution.d.ts.map +1 -0
- package/dist/esm/types/execution.js +1 -0
- package/dist/esm/types/request.d.ts +6 -2
- package/dist/esm/types/request.d.ts.map +1 -0
- package/dist/esm/types/request.js +0 -1
- package/dist/esm/utils/checkPackageUpdates.d.ts +5 -1
- package/dist/esm/utils/checkPackageUpdates.d.ts.map +1 -0
- package/dist/esm/utils/checkPackageUpdates.js +12 -15
- package/dist/esm/utils/checkPackageUpdates.js.map +1 -1
- package/dist/esm/utils/convertQuoteToRoute.d.ts +19 -15
- package/dist/esm/utils/convertQuoteToRoute.d.ts.map +1 -0
- package/dist/esm/utils/convertQuoteToRoute.js +72 -92
- package/dist/esm/utils/convertQuoteToRoute.js.map +1 -1
- package/dist/esm/utils/decode.d.ts +5 -1
- package/dist/esm/utils/decode.d.ts.map +1 -0
- package/dist/esm/utils/decode.js +6 -8
- package/dist/esm/utils/decode.js.map +1 -1
- package/dist/esm/utils/fetchTxErrorDetails.d.ts +5 -1
- package/dist/esm/utils/fetchTxErrorDetails.d.ts.map +1 -0
- package/dist/esm/utils/fetchTxErrorDetails.js +10 -7
- package/dist/esm/utils/fetchTxErrorDetails.js.map +1 -1
- package/dist/esm/utils/formatUnits.d.ts +7 -3
- package/dist/esm/utils/formatUnits.d.ts.map +1 -0
- package/dist/esm/utils/formatUnits.js +14 -15
- package/dist/esm/utils/formatUnits.js.map +1 -1
- package/dist/esm/utils/getTransactionMessage.d.ts +8 -3
- package/dist/esm/utils/getTransactionMessage.d.ts.map +1 -0
- package/dist/esm/utils/getTransactionMessage.js +9 -8
- package/dist/esm/utils/getTransactionMessage.js.map +1 -1
- package/dist/esm/utils/isHex.d.ts +9 -3
- package/dist/esm/utils/isHex.d.ts.map +1 -0
- package/dist/esm/utils/isHex.js +8 -8
- package/dist/esm/utils/isHex.js.map +1 -1
- package/dist/esm/utils/isRoutesRequest.d.ts +7 -2
- package/dist/esm/utils/isRoutesRequest.d.ts.map +1 -0
- package/dist/esm/utils/isRoutesRequest.js +8 -12
- package/dist/esm/utils/isRoutesRequest.js.map +1 -1
- package/dist/esm/utils/isStep.d.ts +7 -2
- package/dist/esm/utils/isStep.d.ts.map +1 -0
- package/dist/esm/utils/isStep.js +17 -23
- package/dist/esm/utils/isStep.js.map +1 -1
- package/dist/esm/utils/isToken.d.ts +7 -2
- package/dist/esm/utils/isToken.d.ts.map +1 -0
- package/dist/esm/utils/isToken.js +7 -5
- package/dist/esm/utils/isToken.js.map +1 -1
- package/dist/esm/utils/parseUnits.d.ts +7 -3
- package/dist/esm/utils/parseUnits.d.ts.map +1 -0
- package/dist/esm/utils/parseUnits.js +31 -43
- package/dist/esm/utils/parseUnits.js.map +1 -1
- package/dist/esm/utils/request.d.ts +10 -5
- package/dist/esm/utils/request.d.ts.map +1 -0
- package/dist/esm/utils/request.js +52 -67
- package/dist/esm/utils/request.js.map +1 -1
- package/dist/esm/utils/sleep.d.ts +5 -1
- package/dist/esm/utils/sleep.d.ts.map +1 -0
- package/dist/esm/utils/sleep.js +8 -4
- package/dist/esm/utils/sleep.js.map +1 -1
- package/dist/esm/utils/toQueryString.d.ts +5 -0
- package/dist/esm/utils/toQueryString.d.ts.map +1 -0
- package/dist/esm/utils/toQueryString.js +16 -0
- package/dist/esm/utils/toQueryString.js.map +1 -0
- package/dist/esm/utils/waitForResult.d.ts +13 -9
- package/dist/esm/utils/waitForResult.d.ts.map +1 -0
- package/dist/esm/utils/waitForResult.js +32 -31
- package/dist/esm/utils/waitForResult.js.map +1 -1
- package/dist/esm/utils/withDedupe.d.ts +20 -4
- package/dist/esm/utils/withDedupe.d.ts.map +1 -0
- package/dist/esm/utils/withDedupe.js +26 -28
- package/dist/esm/utils/withDedupe.js.map +1 -1
- package/dist/esm/utils/withTimeout.d.ts +26 -0
- package/dist/esm/utils/withTimeout.d.ts.map +1 -0
- package/dist/esm/utils/withTimeout.js +34 -0
- package/dist/esm/utils/withTimeout.js.map +1 -0
- package/dist/esm/version.d.ts +6 -2
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +6 -2
- package/dist/esm/version.js.map +1 -1
- package/package.json +6 -5
- package/src/actions/getChains.ts +2 -1
- package/src/actions/getQuote.ts +7 -3
- package/src/actions/getRelayedTransactionStatus.ts +1 -1
- package/src/actions/getRelayerQuote.ts +4 -1
- package/src/actions/getRoutes.ts +2 -1
- package/src/actions/getStepTransaction.ts +16 -7
- package/src/actions/getTokens.ts +6 -3
- package/src/actions/getTools.ts +2 -1
- package/src/actions/index.ts +8 -5
- package/src/client/createClient.ts +9 -7
- package/src/client/getClientStorage.ts +9 -1
- package/src/core/BaseStepExecutionTask.ts +9 -0
- package/src/core/BaseStepExecutor.ts +90 -2
- package/src/core/StatusManager.ts +62 -61
- package/src/core/TaskPipeline.ts +28 -0
- package/src/core/actionMessages.ts +20 -3
- package/src/core/execution.ts +17 -3
- package/src/core/prepareRestart.ts +3 -4
- package/src/core/storage.ts +42 -0
- package/src/core/tasks/CheckBalanceTask.ts +46 -0
- package/src/core/tasks/PrepareTransactionTask.ts +62 -0
- package/src/core/tasks/WaitForTransactionStatusTask.ts +114 -0
- package/src/core/tasks/helpers/checkBalance.ts +218 -0
- 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 -7
- package/src/core/utils.ts +1 -1
- package/src/errors/constants.ts +1 -0
- package/src/errors/errors.ts +24 -0
- package/src/errors/httpError.ts +4 -6
- package/src/errors/utils/baseErrorRootCause.ts +2 -2
- package/src/errors/utils/rootCause.ts +1 -1
- package/src/index.ts +35 -4
- package/src/types/actions.ts +29 -0
- package/src/types/core.ts +23 -17
- package/src/types/execution.ts +32 -0
- package/src/utils/checkPackageUpdates.ts +1 -1
- package/src/utils/convertQuoteToRoute.ts +1 -1
- package/src/utils/decode.ts +1 -1
- package/src/utils/fetchTxErrorDetails.ts +7 -2
- package/src/utils/formatUnits.ts +1 -1
- package/src/utils/isStep.ts +4 -1
- package/src/utils/parseUnits.ts +1 -1
- package/src/utils/toQueryString.ts +35 -0
- package/src/utils/waitForResult.ts +9 -4
- package/src/utils/withDedupe.ts +2 -2
- package/src/utils/withTimeout.ts +50 -0
- package/src/version.ts +1 -1
- package/dist/cjs/core/checkBalance.d.ts +0 -3
- package/dist/cjs/core/checkBalance.js +0 -37
- package/dist/cjs/core/checkBalance.js.map +0 -1
- package/dist/cjs/core/stepComparison.d.ts +0 -4
- package/dist/cjs/core/stepComparison.js +0 -25
- 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 -71
- package/dist/cjs/core/waitForDestinationChainTransaction.js.map +0 -1
- package/dist/cjs/core/waitForTransactionStatus.d.ts +0 -4
- package/dist/cjs/core/waitForTransactionStatus.js +0 -54
- package/dist/cjs/core/waitForTransactionStatus.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/types/actions.js.map +0 -1
- package/dist/cjs/types/core.js.map +0 -1
- package/dist/cjs/types/request.js.map +0 -1
- package/dist/esm/core/checkBalance.d.ts +0 -3
- package/dist/esm/core/checkBalance.js +0 -34
- package/dist/esm/core/checkBalance.js.map +0 -1
- package/dist/esm/core/stepComparison.d.ts +0 -16
- package/dist/esm/core/stepComparison.js +0 -35
- 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 -74
- package/dist/esm/core/waitForDestinationChainTransaction.js.map +0 -1
- package/dist/esm/core/waitForTransactionStatus.d.ts +0 -4
- package/dist/esm/core/waitForTransactionStatus.js +0 -51
- package/dist/esm/core/waitForTransactionStatus.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/types/actions.js.map +0 -1
- package/dist/esm/types/core.js.map +0 -1
- package/dist/esm/types/request.js.map +0 -1
- package/dist/types/actions/getChains.d.ts +0 -13
- package/dist/types/actions/getChains.d.ts.map +0 -1
- package/dist/types/actions/getConnections.d.ts +0 -11
- package/dist/types/actions/getConnections.d.ts.map +0 -1
- package/dist/types/actions/getContractCallsQuote.d.ts +0 -12
- package/dist/types/actions/getContractCallsQuote.d.ts.map +0 -1
- package/dist/types/actions/getGasRecommendation.d.ts +0 -12
- package/dist/types/actions/getGasRecommendation.d.ts.map +0 -1
- package/dist/types/actions/getNameServiceAddress.d.ts +0 -11
- package/dist/types/actions/getNameServiceAddress.d.ts.map +0 -1
- package/dist/types/actions/getQuote.d.ts +0 -14
- package/dist/types/actions/getQuote.d.ts.map +0 -1
- package/dist/types/actions/getRelayedTransactionStatus.d.ts +0 -12
- package/dist/types/actions/getRelayedTransactionStatus.d.ts.map +0 -1
- package/dist/types/actions/getRelayerQuote.d.ts +0 -13
- package/dist/types/actions/getRelayerQuote.d.ts.map +0 -1
- package/dist/types/actions/getRoutes.d.ts +0 -12
- package/dist/types/actions/getRoutes.d.ts.map +0 -1
- package/dist/types/actions/getStatus.d.ts +0 -13
- package/dist/types/actions/getStatus.d.ts.map +0 -1
- package/dist/types/actions/getStepTransaction.d.ts +0 -12
- package/dist/types/actions/getStepTransaction.d.ts.map +0 -1
- package/dist/types/actions/getToken.d.ts +0 -13
- package/dist/types/actions/getToken.d.ts.map +0 -1
- package/dist/types/actions/getTokenBalance.d.ts +0 -13
- package/dist/types/actions/getTokenBalance.d.ts.map +0 -1
- package/dist/types/actions/getTokenBalances.d.ts +0 -13
- package/dist/types/actions/getTokenBalances.d.ts.map +0 -1
- package/dist/types/actions/getTokenBalancesByChain.d.ts +0 -17
- package/dist/types/actions/getTokenBalancesByChain.d.ts.map +0 -1
- package/dist/types/actions/getTokens.d.ts +0 -16
- package/dist/types/actions/getTokens.d.ts.map +0 -1
- package/dist/types/actions/getTools.d.ts +0 -11
- package/dist/types/actions/getTools.d.ts.map +0 -1
- package/dist/types/actions/getTransactionHistory.d.ts +0 -17
- package/dist/types/actions/getTransactionHistory.d.ts.map +0 -1
- package/dist/types/actions/getWalletBalances.d.ts +0 -12
- package/dist/types/actions/getWalletBalances.d.ts.map +0 -1
- package/dist/types/actions/index.d.ts +0 -168
- package/dist/types/actions/index.d.ts.map +0 -1
- package/dist/types/actions/patchContractCalls.d.ts +0 -11
- package/dist/types/actions/patchContractCalls.d.ts.map +0 -1
- package/dist/types/actions/relayTransaction.d.ts +0 -12
- package/dist/types/actions/relayTransaction.d.ts.map +0 -1
- package/dist/types/client/createClient.d.ts +0 -3
- package/dist/types/client/createClient.d.ts.map +0 -1
- package/dist/types/client/getClientStorage.d.ts +0 -9
- package/dist/types/client/getClientStorage.d.ts.map +0 -1
- package/dist/types/core/BaseStepExecutor.d.ts +0 -13
- package/dist/types/core/BaseStepExecutor.d.ts.map +0 -1
- package/dist/types/core/StatusManager.d.ts +0 -68
- package/dist/types/core/StatusManager.d.ts.map +0 -1
- package/dist/types/core/actionMessages.d.ts +0 -5
- package/dist/types/core/actionMessages.d.ts.map +0 -1
- package/dist/types/core/checkBalance.d.ts +0 -4
- package/dist/types/core/checkBalance.d.ts.map +0 -1
- package/dist/types/core/execution.d.ts +0 -44
- package/dist/types/core/execution.d.ts.map +0 -1
- package/dist/types/core/executionState.d.ts +0 -18
- package/dist/types/core/executionState.d.ts.map +0 -1
- package/dist/types/core/prepareRestart.d.ts +0 -3
- package/dist/types/core/prepareRestart.d.ts.map +0 -1
- package/dist/types/core/stepComparison.d.ts +0 -17
- package/dist/types/core/stepComparison.d.ts.map +0 -1
- package/dist/types/core/utils.d.ts +0 -95
- package/dist/types/core/utils.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 +0 -5
- package/dist/types/core/waitForTransactionStatus.d.ts.map +0 -1
- package/dist/types/errors/SDKError.d.ts +0 -13
- package/dist/types/errors/SDKError.d.ts.map +0 -1
- package/dist/types/errors/baseError.d.ts +0 -7
- package/dist/types/errors/baseError.d.ts.map +0 -1
- package/dist/types/errors/constants.d.ts +0 -51
- package/dist/types/errors/constants.d.ts.map +0 -1
- package/dist/types/errors/errors.d.ts +0 -24
- package/dist/types/errors/errors.d.ts.map +0 -1
- package/dist/types/errors/httpError.d.ts +0 -21
- package/dist/types/errors/httpError.d.ts.map +0 -1
- package/dist/types/errors/utils/baseErrorRootCause.d.ts +0 -4
- package/dist/types/errors/utils/baseErrorRootCause.d.ts.map +0 -1
- package/dist/types/errors/utils/rootCause.d.ts +0 -2
- package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -47
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/types/actions.d.ts +0 -10
- package/dist/types/types/actions.d.ts.map +0 -1
- package/dist/types/types/core.d.ts +0 -171
- package/dist/types/types/core.d.ts.map +0 -1
- package/dist/types/types/request.d.ts +0 -4
- package/dist/types/types/request.d.ts.map +0 -1
- package/dist/types/utils/checkPackageUpdates.d.ts +0 -2
- package/dist/types/utils/checkPackageUpdates.d.ts.map +0 -1
- package/dist/types/utils/convertQuoteToRoute.d.ts +0 -19
- package/dist/types/utils/convertQuoteToRoute.d.ts.map +0 -1
- package/dist/types/utils/decode.d.ts +0 -2
- package/dist/types/utils/decode.d.ts.map +0 -1
- package/dist/types/utils/fetchTxErrorDetails.d.ts +0 -2
- package/dist/types/utils/fetchTxErrorDetails.d.ts.map +0 -1
- package/dist/types/utils/formatUnits.d.ts +0 -5
- package/dist/types/utils/formatUnits.d.ts.map +0 -1
- package/dist/types/utils/getTransactionMessage.d.ts +0 -4
- package/dist/types/utils/getTransactionMessage.d.ts.map +0 -1
- package/dist/types/utils/isHex.d.ts +0 -5
- package/dist/types/utils/isHex.d.ts.map +0 -1
- package/dist/types/utils/isRoutesRequest.d.ts +0 -3
- package/dist/types/utils/isRoutesRequest.d.ts.map +0 -1
- package/dist/types/utils/isStep.d.ts +0 -3
- package/dist/types/utils/isStep.d.ts.map +0 -1
- package/dist/types/utils/isToken.d.ts +0 -3
- package/dist/types/utils/isToken.d.ts.map +0 -1
- package/dist/types/utils/parseUnits.d.ts +0 -5
- package/dist/types/utils/parseUnits.d.ts.map +0 -1
- package/dist/types/utils/request.d.ts +0 -7
- package/dist/types/utils/request.d.ts.map +0 -1
- package/dist/types/utils/sleep.d.ts +0 -2
- package/dist/types/utils/sleep.d.ts.map +0 -1
- package/dist/types/utils/waitForResult.d.ts +0 -11
- package/dist/types/utils/waitForResult.d.ts.map +0 -1
- package/dist/types/utils/withDedupe.d.ts +0 -8
- package/dist/types/utils/withDedupe.d.ts.map +0 -1
- package/dist/types/version.d.ts +0 -3
- package/dist/types/version.d.ts.map +0 -1
- package/src/core/checkBalance.ts +0 -51
- package/src/core/waitForDestinationChainTransaction.ts +0 -112
|
@@ -4,23 +4,20 @@ 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'
|
|
11
10
|
import { executionState } from './executionState.js'
|
|
12
11
|
|
|
13
|
-
type
|
|
12
|
+
type ActionProps = {
|
|
14
13
|
step: LiFiStepExtended
|
|
15
14
|
type: ExecutionActionType
|
|
16
|
-
chainId
|
|
17
|
-
status
|
|
15
|
+
chainId: ChainId
|
|
16
|
+
status: ExecutionActionStatus
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
|
-
* Manages status updates of a route and provides various functions for tracking actions
|
|
22
|
-
* @param {string} routeId The route dd this StatusManger belongs to.
|
|
23
|
-
* @returns {StatusManager} An instance of StatusManager.
|
|
20
|
+
* Manages status updates of a route and provides various functions for tracking actions.
|
|
24
21
|
*/
|
|
25
22
|
export class StatusManager {
|
|
26
23
|
private readonly routeId: string
|
|
@@ -32,10 +29,10 @@ export class StatusManager {
|
|
|
32
29
|
|
|
33
30
|
/**
|
|
34
31
|
* Initializes the execution object of a Step.
|
|
35
|
-
* @param step
|
|
36
|
-
* @returns The initialized execution object for this step
|
|
32
|
+
* @param step The current step in execution
|
|
33
|
+
* @returns The initialized execution object for this step
|
|
37
34
|
*/
|
|
38
|
-
|
|
35
|
+
initializeExecution = (step: LiFiStepExtended): Execution => {
|
|
39
36
|
if (!step.execution) {
|
|
40
37
|
step.execution = {
|
|
41
38
|
startedAt: Date.now(),
|
|
@@ -50,6 +47,7 @@ export class StatusManager {
|
|
|
50
47
|
step.execution.startedAt = Date.now()
|
|
51
48
|
step.execution.status = 'PENDING'
|
|
52
49
|
step.execution.signedAt = undefined
|
|
50
|
+
step.execution.error = undefined
|
|
53
51
|
this.updateStepInRoute(step)
|
|
54
52
|
}
|
|
55
53
|
|
|
@@ -58,25 +56,20 @@ export class StatusManager {
|
|
|
58
56
|
|
|
59
57
|
/**
|
|
60
58
|
* Updates the execution object of a Step.
|
|
61
|
-
* @param step
|
|
62
|
-
* @param
|
|
63
|
-
* @param execution Optional. Information about received tokens
|
|
59
|
+
* @param step The current step in execution
|
|
60
|
+
* @param execution Partial execution data to merge
|
|
64
61
|
* @returns The step with the updated execution object
|
|
65
62
|
*/
|
|
66
63
|
updateExecution(
|
|
67
64
|
step: LiFiStepExtended,
|
|
68
|
-
|
|
69
|
-
execution?: Partial<Execution>
|
|
65
|
+
execution: Partial<Execution>
|
|
70
66
|
): LiFiStep {
|
|
71
67
|
if (!step.execution) {
|
|
72
68
|
throw Error("Can't update empty execution.")
|
|
73
69
|
}
|
|
74
|
-
step.execution
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
...step.execution,
|
|
78
|
-
...execution,
|
|
79
|
-
}
|
|
70
|
+
step.execution = {
|
|
71
|
+
...step.execution,
|
|
72
|
+
...execution,
|
|
80
73
|
}
|
|
81
74
|
this.updateStepInRoute(step)
|
|
82
75
|
return step
|
|
@@ -86,13 +79,11 @@ export class StatusManager {
|
|
|
86
79
|
* Finds an action of the specified type in the step's execution
|
|
87
80
|
* @param step The step to search in
|
|
88
81
|
* @param type The action type to find
|
|
89
|
-
* @param status Optional status to update the action with if found
|
|
90
82
|
* @returns The found action or undefined if not found
|
|
91
83
|
*/
|
|
92
84
|
findAction(
|
|
93
85
|
step: LiFiStepExtended,
|
|
94
|
-
type: ExecutionActionType
|
|
95
|
-
status?: ExecutionActionStatus
|
|
86
|
+
type: ExecutionActionType
|
|
96
87
|
): ExecutionAction | undefined {
|
|
97
88
|
if (!step.execution?.actions) {
|
|
98
89
|
throw new Error("Execution hasn't been initialized.")
|
|
@@ -100,46 +91,65 @@ export class StatusManager {
|
|
|
100
91
|
|
|
101
92
|
const action = step.execution.actions.find((p) => p.type === type)
|
|
102
93
|
|
|
103
|
-
if (action && status && action.status !== status) {
|
|
104
|
-
action.status = status
|
|
105
|
-
this.updateStepInRoute(step)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
94
|
return action
|
|
109
95
|
}
|
|
110
96
|
|
|
111
97
|
/**
|
|
112
98
|
* Create and push a new action into the execution.
|
|
99
|
+
* Caller is responsible for ensuring an action of this type does not already exist.
|
|
113
100
|
* @param step The step that should contain the new action.
|
|
114
|
-
* @param type Type of the action.
|
|
101
|
+
* @param type Type of the action.
|
|
115
102
|
* @param chainId Chain Id of the action.
|
|
116
|
-
* @param status
|
|
117
|
-
* @returns
|
|
103
|
+
* @param status The initial status for the new action.
|
|
104
|
+
* @returns The created action.
|
|
118
105
|
*/
|
|
119
|
-
|
|
106
|
+
createAction = ({
|
|
120
107
|
step,
|
|
121
108
|
type,
|
|
122
109
|
chainId,
|
|
123
110
|
status,
|
|
124
|
-
}:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (action) {
|
|
128
|
-
return action
|
|
111
|
+
}: ActionProps): ExecutionAction => {
|
|
112
|
+
if (!step.execution) {
|
|
113
|
+
throw new Error("Execution hasn't been initialized.")
|
|
129
114
|
}
|
|
130
115
|
|
|
131
116
|
const newAction: ExecutionAction = {
|
|
132
|
-
type
|
|
133
|
-
message: getActionMessage(type, status
|
|
134
|
-
status
|
|
135
|
-
chainId
|
|
117
|
+
type,
|
|
118
|
+
message: getActionMessage(type, status),
|
|
119
|
+
status,
|
|
120
|
+
chainId,
|
|
136
121
|
}
|
|
137
122
|
|
|
138
|
-
step.execution
|
|
123
|
+
step.execution.actions.push(newAction)
|
|
139
124
|
this.updateStepInRoute(step)
|
|
140
125
|
return newAction
|
|
141
126
|
}
|
|
142
127
|
|
|
128
|
+
/**
|
|
129
|
+
* Find an existing action by type and update it, or create a new one if none exists.
|
|
130
|
+
* @param step The step that should contain the action.
|
|
131
|
+
* @param type Type of the action. Used to identify already existing actions.
|
|
132
|
+
* @param chainId Chain Id of the action (used when creating).
|
|
133
|
+
* @param status The status to set on the found or newly created action.
|
|
134
|
+
* @returns The updated or newly created action.
|
|
135
|
+
*/
|
|
136
|
+
initializeAction = ({
|
|
137
|
+
step,
|
|
138
|
+
type,
|
|
139
|
+
chainId,
|
|
140
|
+
status,
|
|
141
|
+
}: ActionProps): ExecutionAction => {
|
|
142
|
+
const action = this.findAction(step, type)
|
|
143
|
+
|
|
144
|
+
if (action) {
|
|
145
|
+
return this.updateAction(step, type, status, {
|
|
146
|
+
error: undefined,
|
|
147
|
+
})
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return this.createAction({ step, type, chainId, status })
|
|
151
|
+
}
|
|
152
|
+
|
|
143
153
|
/**
|
|
144
154
|
* Update an action object.
|
|
145
155
|
* @param step The step where the action should be updated
|
|
@@ -152,7 +162,7 @@ export class StatusManager {
|
|
|
152
162
|
step: LiFiStepExtended,
|
|
153
163
|
type: ExecutionActionType,
|
|
154
164
|
status: ExecutionActionStatus,
|
|
155
|
-
params?: Partial<ExecutionAction>
|
|
165
|
+
params?: Partial<ExecutionAction & { signedAt?: number }>
|
|
156
166
|
): ExecutionAction => {
|
|
157
167
|
if (!step.execution) {
|
|
158
168
|
throw new Error("Can't update an empty step execution.")
|
|
@@ -168,11 +178,17 @@ export class StatusManager {
|
|
|
168
178
|
break
|
|
169
179
|
case 'FAILED':
|
|
170
180
|
step.execution.status = 'FAILED'
|
|
181
|
+
if (params?.error) {
|
|
182
|
+
step.execution.error = params.error
|
|
183
|
+
}
|
|
171
184
|
break
|
|
172
185
|
case 'DONE':
|
|
173
186
|
break
|
|
174
187
|
case 'PENDING':
|
|
175
188
|
step.execution.status = 'PENDING'
|
|
189
|
+
if (params?.signedAt) {
|
|
190
|
+
step.execution.signedAt = params.signedAt
|
|
191
|
+
}
|
|
176
192
|
break
|
|
177
193
|
case 'RESET_REQUIRED':
|
|
178
194
|
case 'MESSAGE_REQUIRED':
|
|
@@ -187,9 +203,8 @@ export class StatusManager {
|
|
|
187
203
|
currentAction.message = getActionMessage(type, status)
|
|
188
204
|
// set extra parameters or overwrite the standard params set in the switch statement
|
|
189
205
|
if (params) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
206
|
+
const { signedAt: _signedAt, ...rest } = params
|
|
207
|
+
Object.assign(currentAction, rest)
|
|
193
208
|
}
|
|
194
209
|
// Sort actions, the ones with DONE status go first
|
|
195
210
|
step.execution.actions = [
|
|
@@ -200,20 +215,6 @@ export class StatusManager {
|
|
|
200
215
|
return currentAction
|
|
201
216
|
}
|
|
202
217
|
|
|
203
|
-
/**
|
|
204
|
-
* Remove an action from the execution
|
|
205
|
-
* @param step The step where the action should be removed from
|
|
206
|
-
* @param type The action type to remove
|
|
207
|
-
*/
|
|
208
|
-
removeAction = (step: LiFiStepExtended, type: ExecutionActionType): void => {
|
|
209
|
-
if (!step.execution) {
|
|
210
|
-
throw new Error("Execution hasn't been initialized.")
|
|
211
|
-
}
|
|
212
|
-
const index = step.execution.actions.findIndex((p) => p.type === type)
|
|
213
|
-
step.execution.actions.splice(index, 1)
|
|
214
|
-
this.updateStepInRoute(step)
|
|
215
|
-
}
|
|
216
|
-
|
|
217
218
|
updateStepInRoute = (step: LiFiStep): LiFiStep => {
|
|
218
219
|
if (!this.shouldUpdate) {
|
|
219
220
|
return step
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { StepExecutorContext, TaskResult } from '../types/execution.js'
|
|
2
|
+
import type { BaseStepExecutionTask } from './BaseStepExecutionTask.js'
|
|
3
|
+
|
|
4
|
+
export class TaskPipeline {
|
|
5
|
+
private readonly tasks: BaseStepExecutionTask[]
|
|
6
|
+
|
|
7
|
+
constructor(tasks: BaseStepExecutionTask[]) {
|
|
8
|
+
this.tasks = tasks
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async run(context: StepExecutorContext): Promise<TaskResult> {
|
|
12
|
+
for (const task of this.tasks) {
|
|
13
|
+
const shouldRun = await task.shouldRun(context)
|
|
14
|
+
if (!shouldRun) {
|
|
15
|
+
continue
|
|
16
|
+
}
|
|
17
|
+
const result = await task.run(context)
|
|
18
|
+
if (result.status === 'PAUSED') {
|
|
19
|
+
return { status: 'PAUSED' }
|
|
20
|
+
}
|
|
21
|
+
if (result.context && typeof result.context === 'object') {
|
|
22
|
+
Object.assign(context, result.context)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return { status: 'COMPLETED' }
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -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') {
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { RouteExtended } from '../types/core.js'
|
|
2
2
|
|
|
3
|
-
export const prepareRestart = (route: RouteExtended) => {
|
|
3
|
+
export const prepareRestart = (route: RouteExtended): void => {
|
|
4
4
|
for (let index = 0; index < route.steps.length; index++) {
|
|
5
5
|
const step = route.steps[index]
|
|
6
6
|
if (step.execution) {
|
|
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
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface SDKStorage {
|
|
2
|
+
get(key: string): string | null | Promise<string | null>
|
|
3
|
+
set(key: string, value: string): void | Promise<void>
|
|
4
|
+
remove(key: string): void | Promise<void>
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export class LocalStorageAdapter implements SDKStorage {
|
|
8
|
+
get(key: string): string | null {
|
|
9
|
+
return window.localStorage.getItem(key)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
set(key: string, value: string): void {
|
|
13
|
+
window.localStorage.setItem(key, value)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
remove(key: string): void {
|
|
17
|
+
window.localStorage.removeItem(key)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class InMemoryStorage implements SDKStorage {
|
|
22
|
+
private store = new Map<string, string>()
|
|
23
|
+
|
|
24
|
+
get(key: string): string | null {
|
|
25
|
+
return this.store.get(key) ?? null
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
set(key: string, value: string): void {
|
|
29
|
+
this.store.set(key, value)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
remove(key: string): void {
|
|
33
|
+
this.store.delete(key)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function createDefaultStorage(): SDKStorage {
|
|
38
|
+
if (typeof window !== 'undefined' && window.localStorage) {
|
|
39
|
+
return new LocalStorageAdapter()
|
|
40
|
+
}
|
|
41
|
+
return new InMemoryStorage()
|
|
42
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { LiFiErrorCode } from '../../errors/constants.js'
|
|
2
|
+
import { TransactionError } from '../../errors/errors.js'
|
|
3
|
+
import type { StepExecutorContext, TaskResult } from '../../types/execution.js'
|
|
4
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js'
|
|
5
|
+
import {
|
|
6
|
+
type CheckBalanceOptions,
|
|
7
|
+
checkBalance,
|
|
8
|
+
} from './helpers/checkBalance.js'
|
|
9
|
+
|
|
10
|
+
export class CheckBalanceTask extends BaseStepExecutionTask {
|
|
11
|
+
/**
|
|
12
|
+
* Per-step options hook for chain-specific subclasses (e.g. skip the
|
|
13
|
+
* gas check for smart-contract wallets or relayed steps). Default `{}`
|
|
14
|
+
* keeps behavior unchanged for every provider that doesn't override.
|
|
15
|
+
* Resolved lazily inside `run()` — pipelines that resume past
|
|
16
|
+
* `CheckBalance` pay no cost.
|
|
17
|
+
*/
|
|
18
|
+
protected getCheckBalanceOptions(
|
|
19
|
+
_context: StepExecutorContext
|
|
20
|
+
): Promise<CheckBalanceOptions> {
|
|
21
|
+
return Promise.resolve({})
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async run(context: StepExecutorContext): Promise<TaskResult> {
|
|
25
|
+
const { client, step, statusManager, isBridgeExecution } = context
|
|
26
|
+
|
|
27
|
+
statusManager.initializeAction({
|
|
28
|
+
step,
|
|
29
|
+
type: isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP',
|
|
30
|
+
chainId: step.action.fromChainId,
|
|
31
|
+
status: 'STARTED',
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
const walletAddress = step.action.fromAddress
|
|
35
|
+
if (!walletAddress) {
|
|
36
|
+
throw new TransactionError(
|
|
37
|
+
LiFiErrorCode.InternalError,
|
|
38
|
+
'The wallet address is undefined.'
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const options = await this.getCheckBalanceOptions(context)
|
|
43
|
+
await checkBalance(client, walletAddress, step, options)
|
|
44
|
+
return { status: 'COMPLETED' }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { getStepTransaction } from '../../actions/getStepTransaction.js'
|
|
2
|
+
import { LiFiErrorCode } from '../../errors/constants.js'
|
|
3
|
+
import { TransactionError } from '../../errors/errors.js'
|
|
4
|
+
import type { StepExecutorContext, TaskResult } from '../../types/execution.js'
|
|
5
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js'
|
|
6
|
+
import { stepComparison } from './helpers/stepComparison.js'
|
|
7
|
+
|
|
8
|
+
export class PrepareTransactionTask extends BaseStepExecutionTask {
|
|
9
|
+
async run(context: StepExecutorContext): Promise<TaskResult> {
|
|
10
|
+
const {
|
|
11
|
+
client,
|
|
12
|
+
step,
|
|
13
|
+
statusManager,
|
|
14
|
+
allowUserInteraction,
|
|
15
|
+
executionOptions,
|
|
16
|
+
isBridgeExecution,
|
|
17
|
+
} = context
|
|
18
|
+
|
|
19
|
+
const action = statusManager.findAction(
|
|
20
|
+
step,
|
|
21
|
+
isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
if (!action) {
|
|
25
|
+
throw new TransactionError(
|
|
26
|
+
LiFiErrorCode.TransactionUnprepared,
|
|
27
|
+
'Unable to prepare transaction. Action not found.'
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (!step.transactionRequest) {
|
|
32
|
+
const { execution, ...stepBase } = step
|
|
33
|
+
const updatedStep = await getStepTransaction(client, stepBase)
|
|
34
|
+
const comparedStep = await stepComparison(
|
|
35
|
+
statusManager,
|
|
36
|
+
step,
|
|
37
|
+
updatedStep,
|
|
38
|
+
allowUserInteraction,
|
|
39
|
+
executionOptions
|
|
40
|
+
)
|
|
41
|
+
Object.assign(step, {
|
|
42
|
+
...comparedStep,
|
|
43
|
+
execution: step.execution,
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (!step.transactionRequest?.data) {
|
|
48
|
+
throw new TransactionError(
|
|
49
|
+
LiFiErrorCode.TransactionUnprepared,
|
|
50
|
+
'Unable to prepare transaction. Transaction request data is not found.'
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
statusManager.updateAction(step, action.type, 'ACTION_REQUIRED')
|
|
55
|
+
|
|
56
|
+
if (!allowUserInteraction) {
|
|
57
|
+
return { status: 'PAUSED' }
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return { status: 'COMPLETED' }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { ExtendedTransactionInfo, FullStatusData } from '@lifi/types'
|
|
2
|
+
import { LiFiErrorCode } from '../../errors/constants.js'
|
|
3
|
+
import { TransactionError } from '../../errors/errors.js'
|
|
4
|
+
import type { ExecutionActionType } from '../../types/core.js'
|
|
5
|
+
import type { StepExecutorContext, TaskResult } from '../../types/execution.js'
|
|
6
|
+
import { getTransactionFailedMessage } from '../../utils/getTransactionMessage.js'
|
|
7
|
+
import { BaseStepExecutionTask } from '../BaseStepExecutionTask.js'
|
|
8
|
+
import { waitForTransactionStatus } from './helpers/waitForTransactionStatus.js'
|
|
9
|
+
|
|
10
|
+
export class WaitForTransactionStatusTask extends BaseStepExecutionTask {
|
|
11
|
+
readonly actionType: ExecutionActionType
|
|
12
|
+
|
|
13
|
+
constructor(actionType: ExecutionActionType) {
|
|
14
|
+
super()
|
|
15
|
+
this.actionType = actionType
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async run(context: StepExecutorContext): Promise<TaskResult> {
|
|
19
|
+
const {
|
|
20
|
+
client,
|
|
21
|
+
step,
|
|
22
|
+
statusManager,
|
|
23
|
+
pollingIntervalMs,
|
|
24
|
+
toChain,
|
|
25
|
+
isBridgeExecution,
|
|
26
|
+
} = context
|
|
27
|
+
|
|
28
|
+
// At this point, we should have a txHash or taskId
|
|
29
|
+
// taskId is used for custom integrations that don't use the standard transaction hash
|
|
30
|
+
let transactionHash: string | undefined
|
|
31
|
+
try {
|
|
32
|
+
const swapOrBridgeAction = statusManager.findAction(
|
|
33
|
+
step,
|
|
34
|
+
isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'
|
|
35
|
+
)
|
|
36
|
+
transactionHash = swapOrBridgeAction?.txHash || swapOrBridgeAction?.taskId
|
|
37
|
+
|
|
38
|
+
// Wait for the transaction status on the destination chain
|
|
39
|
+
if (!transactionHash) {
|
|
40
|
+
throw new Error('Transaction hash is undefined.')
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const action = statusManager.initializeAction({
|
|
44
|
+
step,
|
|
45
|
+
type: this.actionType,
|
|
46
|
+
chainId:
|
|
47
|
+
this.actionType === 'RECEIVING_CHAIN'
|
|
48
|
+
? step.action.toChainId
|
|
49
|
+
: step.action.fromChainId,
|
|
50
|
+
status: 'PENDING',
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
const statusResponse = (await waitForTransactionStatus(
|
|
54
|
+
client,
|
|
55
|
+
statusManager,
|
|
56
|
+
transactionHash,
|
|
57
|
+
step,
|
|
58
|
+
action.type,
|
|
59
|
+
pollingIntervalMs
|
|
60
|
+
)) as FullStatusData
|
|
61
|
+
|
|
62
|
+
const statusReceiving =
|
|
63
|
+
statusResponse.receiving as ExtendedTransactionInfo
|
|
64
|
+
|
|
65
|
+
// Update action status
|
|
66
|
+
statusManager.updateAction(step, action.type, 'DONE', {
|
|
67
|
+
chainId: statusReceiving?.chainId || toChain.id,
|
|
68
|
+
substatus: statusResponse.substatus,
|
|
69
|
+
substatusMessage: statusResponse.substatusMessage,
|
|
70
|
+
txHash: statusReceiving?.txHash,
|
|
71
|
+
txLink:
|
|
72
|
+
statusReceiving?.txLink ||
|
|
73
|
+
`${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
// Update execution status
|
|
77
|
+
statusManager.updateExecution(step, {
|
|
78
|
+
status: 'DONE',
|
|
79
|
+
...(statusResponse.sending.amount && {
|
|
80
|
+
fromAmount: statusResponse.sending.amount,
|
|
81
|
+
}),
|
|
82
|
+
...(statusReceiving?.amount && { toAmount: statusReceiving.amount }),
|
|
83
|
+
...(statusReceiving?.token && { toToken: statusReceiving.token }),
|
|
84
|
+
internalTxLink: statusResponse?.lifiExplorerLink,
|
|
85
|
+
externalTxLink: statusResponse?.bridgeExplorerLink,
|
|
86
|
+
gasCosts: [
|
|
87
|
+
{
|
|
88
|
+
amount: statusResponse.sending.gasAmount,
|
|
89
|
+
amountUSD: statusResponse.sending.gasAmountUSD,
|
|
90
|
+
token: statusResponse.sending.gasToken,
|
|
91
|
+
estimate: statusResponse.sending.gasUsed,
|
|
92
|
+
limit: statusResponse.sending.gasUsed,
|
|
93
|
+
price: statusResponse.sending.gasPrice,
|
|
94
|
+
type: 'SEND',
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
return { status: 'COMPLETED' }
|
|
100
|
+
} catch (e: any) {
|
|
101
|
+
const htmlMessage = await getTransactionFailedMessage(
|
|
102
|
+
client,
|
|
103
|
+
step,
|
|
104
|
+
`${toChain.metamask.blockExplorerUrls[0]}tx/${transactionHash}`
|
|
105
|
+
)
|
|
106
|
+
throw new TransactionError(
|
|
107
|
+
LiFiErrorCode.TransactionFailed,
|
|
108
|
+
htmlMessage ??
|
|
109
|
+
'Failed while waiting for status of destination chain transaction.',
|
|
110
|
+
e
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|