@lifi/sdk 3.0.0-alpha.2 → 3.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_cjs/config.js +48 -0
- package/dist/_cjs/config.js.map +1 -0
- package/dist/{cjs → _cjs}/constants.js +2 -4
- package/dist/_cjs/constants.js.map +1 -0
- package/dist/_cjs/core/BaseStepExecutor.js +55 -0
- package/dist/_cjs/core/BaseStepExecutor.js.map +1 -0
- package/dist/_cjs/core/EVM/EVM.js +46 -0
- package/dist/_cjs/core/EVM/EVM.js.map +1 -0
- package/dist/_cjs/core/EVM/EVMStepExecutor.js +276 -0
- package/dist/_cjs/core/EVM/EVMStepExecutor.js.map +1 -0
- package/dist/{cjs/types → _cjs/core/EVM}/abi.js +1 -0
- package/dist/_cjs/core/EVM/abi.js.map +1 -0
- package/dist/{cjs/execution → _cjs/core/EVM}/checkAllowance.js +12 -12
- package/dist/_cjs/core/EVM/checkAllowance.js.map +1 -0
- package/dist/{cjs/allowance → _cjs/core/EVM}/getAllowance.js +15 -17
- package/dist/_cjs/core/EVM/getAllowance.js.map +1 -0
- package/dist/{cjs/balance/getBalance.js → _cjs/core/EVM/getEVMBalance.js} +22 -22
- package/dist/_cjs/core/EVM/getEVMBalance.js.map +1 -0
- package/dist/{cjs/execution → _cjs/core/EVM}/multisig.js +7 -11
- package/dist/_cjs/core/EVM/multisig.js.map +1 -0
- package/dist/_cjs/core/EVM/publicClient.js +35 -0
- package/dist/_cjs/core/EVM/publicClient.js.map +1 -0
- package/dist/_cjs/core/EVM/setAllowance.js +71 -0
- package/dist/_cjs/core/EVM/setAllowance.js.map +1 -0
- package/dist/_cjs/core/EVM/switchChain.js +37 -0
- package/dist/_cjs/core/EVM/switchChain.js.map +1 -0
- package/dist/_cjs/core/EVM/types.js +9 -0
- package/dist/_cjs/core/EVM/types.js.map +1 -0
- package/dist/{cjs/utils/getMaxPriorityFeePerGas.js → _cjs/core/EVM/utils.js} +11 -3
- package/dist/_cjs/core/EVM/utils.js.map +1 -0
- package/dist/_cjs/core/Solana/Solana.js +44 -0
- package/dist/_cjs/core/Solana/Solana.js.map +1 -0
- package/dist/_cjs/core/Solana/SolanaStepExecutor.js +157 -0
- package/dist/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
- package/dist/_cjs/core/Solana/connection.js +18 -0
- package/dist/_cjs/core/Solana/connection.js.map +1 -0
- package/dist/_cjs/core/Solana/getSolanaBalance.js +50 -0
- package/dist/_cjs/core/Solana/getSolanaBalance.js.map +1 -0
- package/dist/_cjs/core/Solana/types.js +10 -0
- package/dist/_cjs/core/Solana/types.js.map +1 -0
- package/dist/_cjs/core/StatusManager.js +167 -0
- package/dist/_cjs/core/StatusManager.js.map +1 -0
- package/dist/{cjs/execution → _cjs/core}/checkBalance.js +5 -5
- package/dist/_cjs/core/checkBalance.js.map +1 -0
- package/dist/_cjs/core/execution.js +134 -0
- package/dist/_cjs/core/execution.js.map +1 -0
- package/dist/_cjs/core/executionState.js +23 -0
- package/dist/_cjs/core/executionState.js.map +1 -0
- package/dist/_cjs/core/index.js +7 -0
- package/dist/_cjs/core/index.js.map +1 -0
- package/dist/_cjs/core/prepareRestart.js +23 -0
- package/dist/_cjs/core/prepareRestart.js.map +1 -0
- package/dist/_cjs/core/provider.js +15 -0
- package/dist/_cjs/core/provider.js.map +1 -0
- package/dist/_cjs/core/stepComparison.js +25 -0
- package/dist/_cjs/core/stepComparison.js.map +1 -0
- package/dist/{cjs/allowance → _cjs/core}/types.js +1 -0
- package/dist/_cjs/core/types.js.map +1 -0
- package/dist/{cjs/execution → _cjs/core}/utils.js +16 -10
- package/dist/_cjs/core/utils.js.map +1 -0
- package/dist/{cjs/execution → _cjs/core}/waitForReceivingTransaction.js +10 -12
- package/dist/_cjs/core/waitForReceivingTransaction.js.map +1 -0
- package/dist/_cjs/createConfig.js +48 -0
- package/dist/_cjs/createConfig.js.map +1 -0
- package/dist/{cjs → _cjs}/helpers.js +11 -25
- package/dist/_cjs/helpers.js.map +1 -0
- package/dist/_cjs/index.js +20 -0
- package/dist/_cjs/index.js.map +1 -0
- package/dist/_cjs/package.json +1 -0
- package/dist/{cjs → _cjs}/request.js +22 -16
- package/dist/_cjs/request.js.map +1 -0
- package/dist/_cjs/services/api.js +284 -0
- package/dist/_cjs/services/api.js.map +1 -0
- package/dist/_cjs/services/balance.js +49 -0
- package/dist/_cjs/services/balance.js.map +1 -0
- package/dist/{cjs → _cjs}/typeguards.js +1 -0
- package/dist/_cjs/typeguards.js.map +1 -0
- package/dist/_cjs/types/index.js +5 -0
- package/dist/_cjs/types/index.js.map +1 -0
- package/dist/{cjs/types/internal.types.js → _cjs/types/internal.js} +1 -0
- package/dist/_cjs/types/internal.js.map +1 -0
- package/dist/{cjs → _cjs}/utils/errors.js +25 -3
- package/dist/_cjs/utils/errors.js.map +1 -0
- package/dist/_cjs/utils/getTransactionMessage.js +31 -0
- package/dist/_cjs/utils/getTransactionMessage.js.map +1 -0
- package/dist/_cjs/utils/index.js +9 -0
- package/dist/_cjs/utils/index.js.map +1 -0
- package/dist/{cjs → _cjs}/utils/median.js +1 -0
- package/dist/_cjs/utils/median.js.map +1 -0
- package/dist/_cjs/utils/parseBackendError.js +27 -0
- package/dist/_cjs/utils/parseBackendError.js.map +1 -0
- package/dist/_cjs/utils/parseError.js +67 -0
- package/dist/_cjs/utils/parseError.js.map +1 -0
- package/dist/{cjs → _cjs}/utils/utils.js +5 -11
- package/dist/_cjs/utils/utils.js.map +1 -0
- package/dist/{cjs → _cjs}/version.js +2 -1
- package/dist/_cjs/version.js.map +1 -0
- package/dist/_esm/config.js +45 -0
- package/dist/_esm/config.js.map +1 -0
- package/dist/{constants.js → _esm/constants.js} +1 -0
- package/dist/_esm/constants.js.map +1 -0
- package/dist/_esm/core/BaseStepExecutor.js +52 -0
- package/dist/_esm/core/BaseStepExecutor.js.map +1 -0
- package/dist/_esm/core/EVM/EVM.js +42 -0
- package/dist/_esm/core/EVM/EVM.js.map +1 -0
- package/dist/_esm/core/EVM/EVMStepExecutor.js +304 -0
- package/dist/_esm/core/EVM/EVMStepExecutor.js.map +1 -0
- package/dist/{types → _esm/core/EVM}/abi.js +1 -0
- package/dist/_esm/core/EVM/abi.js.map +1 -0
- package/dist/{execution → _esm/core/EVM}/checkAllowance.js +8 -6
- package/dist/_esm/core/EVM/checkAllowance.js.map +1 -0
- package/dist/{allowance → _esm/core/EVM}/getAllowance.js +20 -5
- package/dist/_esm/core/EVM/getAllowance.js.map +1 -0
- package/dist/{balance/getBalance.js → _esm/core/EVM/getEVMBalance.js} +11 -11
- package/dist/_esm/core/EVM/getEVMBalance.js.map +1 -0
- package/dist/{execution → _esm/core/EVM}/multisig.js +5 -6
- package/dist/_esm/core/EVM/multisig.js.map +1 -0
- package/dist/_esm/core/EVM/publicClient.js +37 -0
- package/dist/_esm/core/EVM/publicClient.js.map +1 -0
- package/dist/{allowance → _esm/core/EVM}/setAllowance.js +46 -11
- package/dist/_esm/core/EVM/setAllowance.js.map +1 -0
- package/dist/{execution → _esm/core/EVM}/switchChain.js +5 -3
- package/dist/_esm/core/EVM/switchChain.js.map +1 -0
- package/dist/_esm/core/EVM/types.js +6 -0
- package/dist/_esm/core/EVM/types.js.map +1 -0
- package/dist/{utils/getMaxPriorityFeePerGas.js → _esm/core/EVM/utils.js} +9 -1
- package/dist/_esm/core/EVM/utils.js.map +1 -0
- package/dist/_esm/core/Solana/Solana.js +40 -0
- package/dist/_esm/core/Solana/Solana.js.map +1 -0
- package/dist/_esm/core/Solana/SolanaStepExecutor.js +158 -0
- package/dist/_esm/core/Solana/SolanaStepExecutor.js.map +1 -0
- package/dist/_esm/core/Solana/connection.js +19 -0
- package/dist/_esm/core/Solana/connection.js.map +1 -0
- package/dist/_esm/core/Solana/getSolanaBalance.js +46 -0
- package/dist/_esm/core/Solana/getSolanaBalance.js.map +1 -0
- package/dist/_esm/core/Solana/types.js +7 -0
- package/dist/_esm/core/Solana/types.js.map +1 -0
- package/dist/_esm/core/StatusManager.js +203 -0
- package/dist/_esm/core/StatusManager.js.map +1 -0
- package/dist/{execution → _esm/core}/checkBalance.js +3 -2
- package/dist/_esm/core/checkBalance.js.map +1 -0
- package/dist/_esm/core/execution.js +173 -0
- package/dist/_esm/core/execution.js.map +1 -0
- package/dist/_esm/core/executionState.js +20 -0
- package/dist/_esm/core/executionState.js.map +1 -0
- package/dist/_esm/core/index.js +4 -0
- package/dist/_esm/core/index.js.map +1 -0
- package/dist/_esm/core/prepareRestart.js +64 -0
- package/dist/_esm/core/prepareRestart.js.map +1 -0
- package/dist/_esm/core/provider.js +11 -0
- package/dist/_esm/core/provider.js.map +1 -0
- package/dist/{execution → _esm/core}/stepComparison.js +7 -5
- package/dist/_esm/core/stepComparison.js.map +1 -0
- package/dist/_esm/core/types.js +2 -0
- package/dist/_esm/core/types.js.map +1 -0
- package/dist/{execution → _esm/core}/utils.js +14 -0
- package/dist/_esm/core/utils.js.map +1 -0
- package/dist/{execution → _esm/core}/waitForReceivingTransaction.js +8 -7
- package/dist/_esm/core/waitForReceivingTransaction.js.map +1 -0
- package/dist/_esm/createConfig.js +45 -0
- package/dist/_esm/createConfig.js.map +1 -0
- package/dist/{helpers.js → _esm/helpers.js} +4 -3
- package/dist/_esm/helpers.js.map +1 -0
- package/dist/_esm/index.js +12 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/package.json +1 -0
- package/dist/{request.js → _esm/request.js} +19 -9
- package/dist/_esm/request.js.map +1 -0
- package/dist/_esm/services/api.js +353 -0
- package/dist/_esm/services/api.js.map +1 -0
- package/dist/_esm/services/balance.js +65 -0
- package/dist/_esm/services/balance.js.map +1 -0
- package/dist/{typeguards.js → _esm/typeguards.js} +1 -0
- package/dist/_esm/typeguards.js.map +1 -0
- package/dist/_esm/types/index.js +2 -0
- package/dist/_esm/types/index.js.map +1 -0
- package/dist/_esm/types/internal.js +2 -0
- package/dist/_esm/types/internal.js.map +1 -0
- package/dist/{utils → _esm/utils}/errors.js +25 -0
- package/dist/_esm/utils/errors.js.map +1 -0
- package/dist/_esm/utils/getTransactionMessage.js +28 -0
- package/dist/_esm/utils/getTransactionMessage.js.map +1 -0
- package/dist/_esm/utils/index.js +6 -0
- package/dist/_esm/utils/index.js.map +1 -0
- package/dist/{utils → _esm/utils}/median.js +1 -0
- package/dist/_esm/utils/median.js.map +1 -0
- package/dist/_esm/utils/parseBackendError.js +24 -0
- package/dist/_esm/utils/parseBackendError.js.map +1 -0
- package/dist/{utils → _esm/utils}/parseError.js +4 -53
- package/dist/_esm/utils/parseError.js.map +1 -0
- package/dist/{utils → _esm/utils}/utils.js +2 -1
- package/dist/_esm/utils/utils.js.map +1 -0
- package/dist/_esm/version.js +3 -0
- package/dist/_esm/version.js.map +1 -0
- package/dist/_types/config.d.ts +11 -0
- package/dist/_types/config.d.ts.map +1 -0
- package/dist/{cjs → _types}/constants.d.ts +1 -0
- package/dist/_types/constants.d.ts.map +1 -0
- package/dist/_types/core/BaseStepExecutor.d.ts +13 -0
- package/dist/_types/core/BaseStepExecutor.d.ts.map +1 -0
- package/dist/_types/core/EVM/EVM.d.ts +3 -0
- package/dist/_types/core/EVM/EVM.d.ts.map +1 -0
- package/dist/_types/core/EVM/EVMStepExecutor.d.ts +17 -0
- package/dist/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
- package/dist/{cjs/types → _types/core/EVM}/abi.d.ts +1 -0
- package/dist/_types/core/EVM/abi.d.ts.map +1 -0
- package/dist/_types/core/EVM/checkAllowance.d.ts +6 -0
- package/dist/_types/core/EVM/checkAllowance.d.ts.map +1 -0
- package/dist/{cjs/allowance → _types/core/EVM}/getAllowance.d.ts +15 -1
- package/dist/_types/core/EVM/getAllowance.d.ts.map +1 -0
- package/dist/_types/core/EVM/getEVMBalance.d.ts +3 -0
- package/dist/_types/core/EVM/getEVMBalance.d.ts.map +1 -0
- package/dist/_types/core/EVM/multisig.d.ts +6 -0
- package/dist/_types/core/EVM/multisig.d.ts.map +1 -0
- package/dist/_types/core/EVM/publicClient.d.ts +8 -0
- package/dist/_types/core/EVM/publicClient.d.ts.map +1 -0
- package/dist/_types/core/EVM/setAllowance.d.ts +25 -0
- package/dist/_types/core/EVM/setAllowance.d.ts.map +1 -0
- package/dist/{execution → _types/core/EVM}/switchChain.d.ts +6 -4
- package/dist/_types/core/EVM/switchChain.d.ts.map +1 -0
- package/dist/_types/core/EVM/types.d.ts +57 -0
- package/dist/_types/core/EVM/types.d.ts.map +1 -0
- package/dist/_types/core/EVM/utils.d.ts +5 -0
- package/dist/_types/core/EVM/utils.d.ts.map +1 -0
- package/dist/_types/core/Solana/Solana.d.ts +3 -0
- package/dist/_types/core/Solana/Solana.d.ts.map +1 -0
- package/dist/_types/core/Solana/SolanaStepExecutor.d.ts +13 -0
- package/dist/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
- package/dist/_types/core/Solana/connection.d.ts +8 -0
- package/dist/_types/core/Solana/connection.d.ts.map +1 -0
- package/dist/_types/core/Solana/getSolanaBalance.d.ts +3 -0
- package/dist/_types/core/Solana/getSolanaBalance.d.ts.map +1 -0
- package/dist/_types/core/Solana/types.d.ts +13 -0
- package/dist/_types/core/Solana/types.d.ts.map +1 -0
- package/dist/{cjs/execution → _types/core}/StatusManager.d.ts +12 -16
- package/dist/_types/core/StatusManager.d.ts.map +1 -0
- package/dist/_types/core/checkBalance.d.ts +3 -0
- package/dist/_types/core/checkBalance.d.ts.map +1 -0
- package/dist/_types/core/execution.d.ts +42 -0
- package/dist/_types/core/execution.d.ts.map +1 -0
- package/dist/_types/core/executionState.d.ts +16 -0
- package/dist/_types/core/executionState.d.ts.map +1 -0
- package/dist/_types/core/index.d.ts +4 -0
- package/dist/_types/core/index.d.ts.map +1 -0
- package/dist/_types/core/prepareRestart.d.ts +3 -0
- package/dist/_types/core/prepareRestart.d.ts.map +1 -0
- package/dist/_types/core/provider.d.ts +3 -0
- package/dist/_types/core/provider.d.ts.map +1 -0
- package/dist/{execution → _types/core}/stepComparison.d.ts +7 -4
- package/dist/_types/core/stepComparison.d.ts.map +1 -0
- package/dist/_types/core/types.d.ts +71 -0
- package/dist/_types/core/types.d.ts.map +1 -0
- package/dist/{execution → _types/core}/utils.d.ts +5 -2
- package/dist/_types/core/utils.d.ts.map +1 -0
- package/dist/_types/core/waitForReceivingTransaction.d.ts +4 -0
- package/dist/_types/core/waitForReceivingTransaction.d.ts.map +1 -0
- package/dist/_types/createConfig.d.ts +7 -0
- package/dist/_types/createConfig.d.ts.map +1 -0
- package/dist/{helpers.d.ts → _types/helpers.d.ts} +4 -3
- package/dist/_types/helpers.d.ts.map +1 -0
- package/dist/_types/index.d.ts +12 -0
- package/dist/_types/index.d.ts.map +1 -0
- package/dist/{request.d.ts → _types/request.d.ts} +1 -0
- package/dist/_types/request.d.ts.map +1 -0
- package/dist/_types/services/api.d.ts +87 -0
- package/dist/_types/services/api.d.ts.map +1 -0
- package/dist/_types/services/balance.d.ts +30 -0
- package/dist/_types/services/balance.d.ts.map +1 -0
- package/dist/{cjs → _types}/typeguards.d.ts +3 -2
- package/dist/_types/typeguards.d.ts.map +1 -0
- package/dist/_types/types/index.d.ts +2 -0
- package/dist/_types/types/index.d.ts.map +1 -0
- package/dist/_types/types/internal.d.ts +56 -0
- package/dist/_types/types/internal.d.ts.map +1 -0
- package/dist/{utils → _types/utils}/errors.d.ts +1 -0
- package/dist/_types/utils/errors.d.ts.map +1 -0
- package/dist/_types/utils/getTransactionMessage.d.ts +4 -0
- package/dist/_types/utils/getTransactionMessage.d.ts.map +1 -0
- package/dist/_types/utils/index.d.ts +6 -0
- package/dist/_types/utils/index.d.ts.map +1 -0
- package/dist/{cjs → _types}/utils/median.d.ts +1 -0
- package/dist/_types/utils/median.d.ts.map +1 -0
- package/dist/_types/utils/parseBackendError.d.ts +3 -0
- package/dist/_types/utils/parseBackendError.d.ts.map +1 -0
- package/dist/{utils → _types/utils}/parseError.d.ts +4 -6
- package/dist/_types/utils/parseError.d.ts.map +1 -0
- package/dist/{utils → _types/utils}/utils.d.ts +1 -0
- package/dist/_types/utils/utils.d.ts.map +1 -0
- package/dist/_types/version.d.ts +3 -0
- package/dist/_types/version.d.ts.map +1 -0
- package/dist/config.ts +47 -0
- package/dist/constants.ts +7 -0
- package/dist/core/BaseStepExecutor.ts +40 -0
- package/dist/core/EVM/EVM.ts +50 -0
- package/dist/core/EVM/EVMStepExecutor.ts +472 -0
- package/dist/core/EVM/abi.ts +47 -0
- package/dist/core/EVM/checkAllowance.ts +152 -0
- package/dist/core/EVM/getAllowance.ts +146 -0
- package/dist/core/EVM/getEVMBalance.ts +120 -0
- package/dist/core/EVM/multisig.ts +53 -0
- package/dist/core/EVM/publicClient.ts +46 -0
- package/dist/core/EVM/setAllowance.ts +144 -0
- package/dist/core/EVM/switchChain.ts +77 -0
- package/dist/core/EVM/types.ts +75 -0
- package/dist/core/EVM/utils.ts +43 -0
- package/dist/core/Solana/Solana.ts +46 -0
- package/dist/core/Solana/SolanaStepExecutor.ts +253 -0
- package/dist/core/Solana/connection.ts +19 -0
- package/dist/core/Solana/getSolanaBalance.ts +62 -0
- package/dist/core/Solana/types.ts +18 -0
- package/dist/core/StatusManager.ts +238 -0
- package/dist/core/checkBalance.ts +48 -0
- package/dist/core/execution.ts +218 -0
- package/dist/core/executionState.ts +40 -0
- package/dist/core/index.ts +3 -0
- package/dist/core/prepareRestart.ts +81 -0
- package/dist/core/provider.ts +12 -0
- package/dist/core/stepComparison.ts +51 -0
- package/dist/core/types.ts +103 -0
- package/dist/core/utils.ts +122 -0
- package/dist/core/waitForReceivingTransaction.ts +73 -0
- package/dist/createConfig.ts +54 -0
- package/dist/helpers.ts +97 -0
- package/dist/index.ts +11 -0
- package/dist/request.ts +79 -0
- package/dist/services/api.ts +472 -0
- package/dist/services/balance.ts +93 -0
- package/dist/typeguards.ts +89 -0
- package/dist/types/index.ts +1 -0
- package/dist/types/internal.ts +58 -0
- package/dist/utils/errors.ts +231 -0
- package/dist/utils/getTransactionMessage.ts +46 -0
- package/dist/utils/index.ts +5 -0
- package/dist/utils/median.ts +11 -0
- package/dist/utils/parseBackendError.ts +50 -0
- package/dist/utils/parseError.ts +204 -0
- package/dist/utils/utils.ts +48 -0
- package/dist/version.ts +2 -0
- package/package.json +27 -86
- package/dist/LiFi.d.ts +0 -171
- package/dist/LiFi.js +0 -246
- package/dist/allowance/getAllowance.d.ts +0 -6
- package/dist/allowance/index.d.ts +0 -3
- package/dist/allowance/index.js +0 -3
- package/dist/allowance/setAllowance.d.ts +0 -5
- package/dist/allowance/types.d.ts +0 -27
- package/dist/allowance/types.js +0 -1
- package/dist/balance/getBalance.d.ts +0 -2
- package/dist/balance/getTokenBalance.d.ts +0 -8
- package/dist/balance/getTokenBalance.js +0 -27
- package/dist/balance/index.d.ts +0 -2
- package/dist/balance/index.js +0 -2
- package/dist/cjs/LiFi.d.ts +0 -171
- package/dist/cjs/LiFi.js +0 -276
- package/dist/cjs/allowance/index.d.ts +0 -3
- package/dist/cjs/allowance/index.js +0 -19
- package/dist/cjs/allowance/setAllowance.d.ts +0 -5
- package/dist/cjs/allowance/setAllowance.js +0 -56
- package/dist/cjs/allowance/types.d.ts +0 -27
- package/dist/cjs/balance/getBalance.d.ts +0 -2
- package/dist/cjs/balance/getTokenBalance.d.ts +0 -8
- package/dist/cjs/balance/getTokenBalance.js +0 -33
- package/dist/cjs/balance/index.d.ts +0 -2
- package/dist/cjs/balance/index.js +0 -18
- package/dist/cjs/connectors.d.ts +0 -8
- package/dist/cjs/connectors.js +0 -75
- package/dist/cjs/execution/RouteExecutionManager.d.ts +0 -59
- package/dist/cjs/execution/RouteExecutionManager.js +0 -202
- package/dist/cjs/execution/StatusManager.js +0 -171
- package/dist/cjs/execution/StepExecutionManager.d.ts +0 -7
- package/dist/cjs/execution/StepExecutionManager.js +0 -267
- package/dist/cjs/execution/StepExecutor.d.ts +0 -15
- package/dist/cjs/execution/StepExecutor.js +0 -62
- package/dist/cjs/execution/checkAllowance.d.ts +0 -4
- package/dist/cjs/execution/checkBalance.d.ts +0 -2
- package/dist/cjs/execution/index.d.ts +0 -1
- package/dist/cjs/execution/index.js +0 -17
- package/dist/cjs/execution/multisig.d.ts +0 -4
- package/dist/cjs/execution/prepareRestart.d.ts +0 -3
- package/dist/cjs/execution/prepareRestart.js +0 -65
- package/dist/cjs/execution/stepComparison.d.ts +0 -14
- package/dist/cjs/execution/stepComparison.js +0 -37
- package/dist/cjs/execution/switchChain.d.ts +0 -21
- package/dist/cjs/execution/switchChain.js +0 -54
- package/dist/cjs/execution/utils.d.ts +0 -12
- package/dist/cjs/execution/waitForReceivingTransaction.d.ts +0 -3
- package/dist/cjs/helpers.d.ts +0 -18
- package/dist/cjs/index.d.ts +0 -5
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/request.d.ts +0 -9
- package/dist/cjs/services/ApiService.d.ts +0 -17
- package/dist/cjs/services/ApiService.js +0 -326
- package/dist/cjs/services/ChainsService.d.ts +0 -11
- package/dist/cjs/services/ChainsService.js +0 -39
- package/dist/cjs/services/ConfigService.d.ts +0 -23
- package/dist/cjs/services/ConfigService.js +0 -101
- package/dist/cjs/types/index.d.ts +0 -4
- package/dist/cjs/types/index.js +0 -22
- package/dist/cjs/types/internal.types.d.ts +0 -142
- package/dist/cjs/utils/errors.d.ts +0 -107
- package/dist/cjs/utils/getMaxPriorityFeePerGas.d.ts +0 -2
- package/dist/cjs/utils/index.d.ts +0 -5
- package/dist/cjs/utils/index.js +0 -21
- package/dist/cjs/utils/parseError.d.ts +0 -37
- package/dist/cjs/utils/parseError.js +0 -157
- package/dist/cjs/utils/utils.d.ts +0 -10
- package/dist/cjs/version.d.ts +0 -2
- package/dist/connectors.d.ts +0 -8
- package/dist/connectors.js +0 -41
- package/dist/constants.d.ts +0 -6
- package/dist/execution/RouteExecutionManager.d.ts +0 -59
- package/dist/execution/RouteExecutionManager.js +0 -195
- package/dist/execution/StatusManager.d.ts +0 -67
- package/dist/execution/StatusManager.js +0 -167
- package/dist/execution/StepExecutionManager.d.ts +0 -7
- package/dist/execution/StepExecutionManager.js +0 -260
- package/dist/execution/StepExecutor.d.ts +0 -15
- package/dist/execution/StepExecutor.js +0 -58
- package/dist/execution/checkAllowance.d.ts +0 -4
- package/dist/execution/checkBalance.d.ts +0 -2
- package/dist/execution/index.d.ts +0 -1
- package/dist/execution/index.js +0 -1
- package/dist/execution/multisig.d.ts +0 -4
- package/dist/execution/prepareRestart.d.ts +0 -3
- package/dist/execution/prepareRestart.js +0 -61
- package/dist/execution/waitForReceivingTransaction.d.ts +0 -3
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -6
- package/dist/services/ApiService.d.ts +0 -17
- package/dist/services/ApiService.js +0 -321
- package/dist/services/ChainsService.d.ts +0 -11
- package/dist/services/ChainsService.js +0 -33
- package/dist/services/ConfigService.d.ts +0 -23
- package/dist/services/ConfigService.js +0 -99
- package/dist/typeguards.d.ts +0 -4
- package/dist/types/abi.d.ts +0 -5
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.js +0 -4
- package/dist/types/internal.types.d.ts +0 -142
- package/dist/types/internal.types.js +0 -1
- package/dist/utils/getMaxPriorityFeePerGas.d.ts +0 -2
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/index.js +0 -5
- package/dist/utils/median.d.ts +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.js +0 -2
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
enum ErrorType {
|
|
2
|
+
RPCError = 'RPCError',
|
|
3
|
+
ProviderError = 'ProviderError',
|
|
4
|
+
ServerError = 'ServerError',
|
|
5
|
+
TransactionError = 'TransactionError',
|
|
6
|
+
ValidationError = 'ValidationError',
|
|
7
|
+
NotFoundError = 'NotFoundError',
|
|
8
|
+
UnknownError = 'UnknownError',
|
|
9
|
+
SlippageError = 'SlippageError',
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export enum LiFiErrorCode {
|
|
13
|
+
InternalError = 1000,
|
|
14
|
+
ValidationError = 1001,
|
|
15
|
+
TransactionUnderpriced = 1002,
|
|
16
|
+
TransactionFailed = 1003,
|
|
17
|
+
Timeout = 1004,
|
|
18
|
+
ProviderUnavailable = 1005,
|
|
19
|
+
NotFound = 1006,
|
|
20
|
+
ChainSwitchError = 1007,
|
|
21
|
+
TransactionUnprepared = 1008,
|
|
22
|
+
GasLimitError = 1009,
|
|
23
|
+
TransactionCanceled = 1010,
|
|
24
|
+
SlippageError = 1011,
|
|
25
|
+
SignatureRejected = 1012,
|
|
26
|
+
BalanceError = 1013,
|
|
27
|
+
AllowanceRequired = 1014,
|
|
28
|
+
InsufficientFunds = 1015,
|
|
29
|
+
ExchangeRateUpdateCanceled = 1016,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export enum EthersErrorType {
|
|
33
|
+
ActionRejected = 'ACTION_REJECTED',
|
|
34
|
+
CallExecption = 'CALL_EXCEPTION',
|
|
35
|
+
InsufficientFunds = 'INSUFFICIENT_FUNDS',
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export enum EthersErrorMessage {
|
|
39
|
+
ERC20Allowance = 'ERC20: transfer amount exceeds allowance',
|
|
40
|
+
LowGas = 'intrinsic gas too low',
|
|
41
|
+
OutOfGas = 'out of gas',
|
|
42
|
+
Underpriced = 'underpriced',
|
|
43
|
+
LowReplacementFee = 'replacement fee too low',
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export enum ErrorMessage {
|
|
47
|
+
UnknownError = 'Unknown error occurred.',
|
|
48
|
+
SlippageError = 'The slippage is larger than the defined threshold. Please request a new route to get a fresh quote.',
|
|
49
|
+
GasLimitLow = 'Gas limit is too low.',
|
|
50
|
+
TransactionUnderpriced = 'Transaction is underpriced.',
|
|
51
|
+
Default = 'Something went wrong.',
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export enum MetaMaskRPCErrorCode {
|
|
55
|
+
invalidInput = -32000,
|
|
56
|
+
resourceNotFound = -32001,
|
|
57
|
+
resourceUnavailable = -32002,
|
|
58
|
+
transactionRejected = -32003,
|
|
59
|
+
methodNotSupported = -32004,
|
|
60
|
+
limitExceeded = -32005,
|
|
61
|
+
parse = -32700,
|
|
62
|
+
invalidRequest = -32600,
|
|
63
|
+
methodNotFound = -32601,
|
|
64
|
+
invalidParams = -32602,
|
|
65
|
+
internal = -32603,
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export enum MetaMaskProviderErrorCode {
|
|
69
|
+
userRejectedRequest = 4001,
|
|
70
|
+
unauthorized = 4100,
|
|
71
|
+
unsupportedMethod = 4200,
|
|
72
|
+
disconnected = 4900,
|
|
73
|
+
chainDisconnected = 4901,
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export type ErrorCode =
|
|
77
|
+
| LiFiErrorCode
|
|
78
|
+
| MetaMaskRPCErrorCode
|
|
79
|
+
| MetaMaskProviderErrorCode
|
|
80
|
+
|
|
81
|
+
export class LiFiError extends Error {
|
|
82
|
+
code: ErrorCode
|
|
83
|
+
htmlMessage?: string
|
|
84
|
+
|
|
85
|
+
constructor(
|
|
86
|
+
type: ErrorType,
|
|
87
|
+
code: number,
|
|
88
|
+
message: string,
|
|
89
|
+
htmlMessage?: string,
|
|
90
|
+
stack?: string
|
|
91
|
+
) {
|
|
92
|
+
super(message)
|
|
93
|
+
|
|
94
|
+
// Set the prototype explicitly: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
|
95
|
+
Object.setPrototypeOf(this, LiFiError.prototype)
|
|
96
|
+
|
|
97
|
+
this.code = code
|
|
98
|
+
|
|
99
|
+
// the name property is used by toString(). It is a string and we can't use our custom ErrorTypes, that's why we have to cast
|
|
100
|
+
this.name = type.toString()
|
|
101
|
+
|
|
102
|
+
this.htmlMessage = htmlMessage
|
|
103
|
+
|
|
104
|
+
// passing a stack allows us to preserve the stack from errors that we caught and just want to transform in one of our custom errors
|
|
105
|
+
if (stack) {
|
|
106
|
+
this.stack = stack
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export class RPCError extends LiFiError {
|
|
112
|
+
constructor(
|
|
113
|
+
code: ErrorCode,
|
|
114
|
+
message: string,
|
|
115
|
+
htmlMessage?: string,
|
|
116
|
+
stack?: string
|
|
117
|
+
) {
|
|
118
|
+
super(ErrorType.RPCError, code, message, htmlMessage, stack)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export class ProviderError extends LiFiError {
|
|
123
|
+
constructor(
|
|
124
|
+
code: ErrorCode,
|
|
125
|
+
message: string,
|
|
126
|
+
htmlMessage?: string,
|
|
127
|
+
stack?: string
|
|
128
|
+
) {
|
|
129
|
+
super(ErrorType.ProviderError, code, message, htmlMessage, stack)
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export class ServerError extends LiFiError {
|
|
134
|
+
constructor(message: string, htmlMessage?: string, stack?: string) {
|
|
135
|
+
super(
|
|
136
|
+
ErrorType.ServerError,
|
|
137
|
+
LiFiErrorCode.InternalError,
|
|
138
|
+
message,
|
|
139
|
+
htmlMessage,
|
|
140
|
+
stack
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export class ValidationError extends LiFiError {
|
|
146
|
+
constructor(message: string, htmlMessage?: string, stack?: string) {
|
|
147
|
+
super(
|
|
148
|
+
ErrorType.ValidationError,
|
|
149
|
+
LiFiErrorCode.ValidationError,
|
|
150
|
+
message,
|
|
151
|
+
htmlMessage,
|
|
152
|
+
stack
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export class TransactionError extends LiFiError {
|
|
158
|
+
constructor(
|
|
159
|
+
code: ErrorCode,
|
|
160
|
+
message: string,
|
|
161
|
+
htmlMessage?: string,
|
|
162
|
+
stack?: string
|
|
163
|
+
) {
|
|
164
|
+
super(ErrorType.TransactionError, code, message, htmlMessage, stack)
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export class SlippageError extends LiFiError {
|
|
169
|
+
constructor(message: string, htmlMessage?: string, stack?: string) {
|
|
170
|
+
super(
|
|
171
|
+
ErrorType.SlippageError,
|
|
172
|
+
LiFiErrorCode.SlippageError,
|
|
173
|
+
message,
|
|
174
|
+
htmlMessage,
|
|
175
|
+
stack
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export class BalanceError extends LiFiError {
|
|
181
|
+
constructor(message: string, htmlMessage?: string, stack?: string) {
|
|
182
|
+
super(
|
|
183
|
+
ErrorType.ValidationError,
|
|
184
|
+
LiFiErrorCode.BalanceError,
|
|
185
|
+
message,
|
|
186
|
+
htmlMessage,
|
|
187
|
+
stack
|
|
188
|
+
)
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export class NotFoundError extends LiFiError {
|
|
193
|
+
constructor(message: string, htmlMessage?: string, stack?: string) {
|
|
194
|
+
super(
|
|
195
|
+
ErrorType.NotFoundError,
|
|
196
|
+
LiFiErrorCode.NotFound,
|
|
197
|
+
message,
|
|
198
|
+
htmlMessage,
|
|
199
|
+
stack
|
|
200
|
+
)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export class UnknownError extends LiFiError {
|
|
205
|
+
constructor(
|
|
206
|
+
code: ErrorCode,
|
|
207
|
+
message: string,
|
|
208
|
+
htmlMessage?: string,
|
|
209
|
+
stack?: string
|
|
210
|
+
) {
|
|
211
|
+
super(ErrorType.UnknownError, code, message, htmlMessage, stack)
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export class HTTPError extends Error {
|
|
216
|
+
public response: Response
|
|
217
|
+
public status: number
|
|
218
|
+
|
|
219
|
+
constructor(response: Response) {
|
|
220
|
+
const code = response.status || response.status === 0 ? response.status : ''
|
|
221
|
+
const title = response.statusText || ''
|
|
222
|
+
const status = `${code} ${title}`.trim()
|
|
223
|
+
const reason = status ? `status code ${status}` : 'an unknown error'
|
|
224
|
+
|
|
225
|
+
super(`Request failed with ${reason}`)
|
|
226
|
+
|
|
227
|
+
this.name = 'HTTPError'
|
|
228
|
+
this.response = response
|
|
229
|
+
this.status = response.status
|
|
230
|
+
}
|
|
231
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { LiFiStep, Process } from '@lifi/types'
|
|
2
|
+
import { formatUnits } from 'viem'
|
|
3
|
+
import { config } from '../config.js'
|
|
4
|
+
|
|
5
|
+
export const getTransactionNotSentMessage = async (
|
|
6
|
+
step?: LiFiStep,
|
|
7
|
+
process?: Process
|
|
8
|
+
): Promise<string> => {
|
|
9
|
+
let transactionNotSend =
|
|
10
|
+
'Transaction was not sent, your funds are still in your wallet'
|
|
11
|
+
|
|
12
|
+
// add information about funds if available
|
|
13
|
+
if (step) {
|
|
14
|
+
const chain = await config.getChainById(step.action.fromChainId)
|
|
15
|
+
|
|
16
|
+
transactionNotSend += ` (${formatUnits(
|
|
17
|
+
BigInt(step.action.fromAmount),
|
|
18
|
+
step.action.fromToken.decimals
|
|
19
|
+
)} ${step.action.fromToken.symbol} on ${chain.name})`
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
transactionNotSend +=
|
|
23
|
+
", please retry.<br/>If it still doesn't work, it is safe to delete this transfer and start a new one."
|
|
24
|
+
|
|
25
|
+
// add transaction explorer link if available
|
|
26
|
+
transactionNotSend +=
|
|
27
|
+
process && process.txLink
|
|
28
|
+
? `<br>You can check the failed transaction <a href="${process.txLink}" target="_blank" rel="nofollow noreferrer">here</a>.`
|
|
29
|
+
: ''
|
|
30
|
+
|
|
31
|
+
return transactionNotSend
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const getTransactionFailedMessage = async (
|
|
35
|
+
step: LiFiStep,
|
|
36
|
+
txLink?: string
|
|
37
|
+
): Promise<string> => {
|
|
38
|
+
const chain = await config.getChainById(step.action.toChainId)
|
|
39
|
+
|
|
40
|
+
const baseString = `It appears that your transaction may not have been successful.
|
|
41
|
+
However, to confirm this, please check your ${chain.name} wallet for ${step.action.toToken.symbol}.`
|
|
42
|
+
return txLink
|
|
43
|
+
? `${baseString}
|
|
44
|
+
You can also check the <a href="${txLink}" target="_blank" rel="nofollow noreferrer">block explorer</a> for more information.`
|
|
45
|
+
: baseString
|
|
46
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const median = (arr: bigint[]): bigint | undefined => {
|
|
2
|
+
if (!arr.length) {
|
|
3
|
+
return
|
|
4
|
+
}
|
|
5
|
+
const s = [...arr].sort((a, b) => (a > b ? 1 : a < b ? -1 : 0))
|
|
6
|
+
const mid = Math.floor(s.length / 2)
|
|
7
|
+
if (s.length % 2 === 0) {
|
|
8
|
+
return (s[mid - 1] + s[mid]) / 2n
|
|
9
|
+
}
|
|
10
|
+
return s[mid]
|
|
11
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { LiFiError } from './errors.js'
|
|
2
|
+
import {
|
|
3
|
+
ErrorMessage,
|
|
4
|
+
NotFoundError,
|
|
5
|
+
ServerError,
|
|
6
|
+
SlippageError,
|
|
7
|
+
ValidationError,
|
|
8
|
+
} from './errors.js'
|
|
9
|
+
|
|
10
|
+
export const parseBackendError = async (e: any): Promise<LiFiError> => {
|
|
11
|
+
let data
|
|
12
|
+
try {
|
|
13
|
+
data = await e.response?.json()
|
|
14
|
+
} catch (error) {
|
|
15
|
+
// ignore
|
|
16
|
+
}
|
|
17
|
+
if (e.response?.status === 400) {
|
|
18
|
+
return new ValidationError(
|
|
19
|
+
data?.message || e.response?.statusText,
|
|
20
|
+
undefined,
|
|
21
|
+
e.stack
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (e.response?.status === 404) {
|
|
26
|
+
return new NotFoundError(
|
|
27
|
+
data?.message || e.response?.statusText,
|
|
28
|
+
undefined,
|
|
29
|
+
e.stack
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (e.response?.status === 409) {
|
|
34
|
+
return new SlippageError(
|
|
35
|
+
data?.message || e.response?.statusText,
|
|
36
|
+
ErrorMessage.SlippageError,
|
|
37
|
+
e.stack
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (e.response?.status === 500) {
|
|
42
|
+
return new ServerError(
|
|
43
|
+
data?.message || e.response?.statusText,
|
|
44
|
+
undefined,
|
|
45
|
+
e.stack
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return new ServerError(ErrorMessage.Default, undefined, e.stack)
|
|
50
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { LiFiStep, Process } from '@lifi/types'
|
|
2
|
+
import {
|
|
3
|
+
errorCodes as MetaMaskErrorCodes,
|
|
4
|
+
getMessageFromCode,
|
|
5
|
+
} from 'eth-rpc-errors'
|
|
6
|
+
import { fetchTxErrorDetails } from '../helpers.js'
|
|
7
|
+
import {
|
|
8
|
+
ErrorMessage,
|
|
9
|
+
EthersErrorMessage,
|
|
10
|
+
EthersErrorType,
|
|
11
|
+
LiFiError,
|
|
12
|
+
LiFiErrorCode,
|
|
13
|
+
MetaMaskProviderErrorCode,
|
|
14
|
+
ProviderError,
|
|
15
|
+
RPCError,
|
|
16
|
+
TransactionError,
|
|
17
|
+
UnknownError,
|
|
18
|
+
} from './errors.js'
|
|
19
|
+
import { getTransactionNotSentMessage } from './getTransactionMessage.js'
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Available MetaMask error codes:
|
|
23
|
+
*
|
|
24
|
+
* export const errorCodes: ErrorCodes = {
|
|
25
|
+
rpc: {
|
|
26
|
+
invalidInput: -32000,
|
|
27
|
+
resourceNotFound: -32001,
|
|
28
|
+
resourceUnavailable: -32002,
|
|
29
|
+
transactionRejected: -32003,
|
|
30
|
+
methodNotSupported: -32004,
|
|
31
|
+
limitExceeded: -32005,
|
|
32
|
+
parse: -32700,
|
|
33
|
+
invalidRequest: -32600,
|
|
34
|
+
methodNotFound: -32601,
|
|
35
|
+
invalidParams: -32602,
|
|
36
|
+
internal: -32603,
|
|
37
|
+
},
|
|
38
|
+
provider: {
|
|
39
|
+
userRejectedRequest: 4001,
|
|
40
|
+
unauthorized: 4100,
|
|
41
|
+
unsupportedMethod: 4200,
|
|
42
|
+
disconnected: 4900,
|
|
43
|
+
chainDisconnected: 4901,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
*
|
|
47
|
+
* For more information about error codes supported by metamask check
|
|
48
|
+
* https://github.com/MetaMask/eth-rpc-errors
|
|
49
|
+
* https://eips.ethereum.org/EIPS/eip-1474#error-codes
|
|
50
|
+
* https://eips.ethereum.org/EIPS/eip-1193#provider-errors
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
export const parseError = async (
|
|
54
|
+
e: any,
|
|
55
|
+
step?: LiFiStep,
|
|
56
|
+
process?: Process
|
|
57
|
+
): Promise<LiFiError> => {
|
|
58
|
+
if (e instanceof LiFiError) {
|
|
59
|
+
return e
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const errorCode = e.code || e.cause?.code
|
|
63
|
+
|
|
64
|
+
switch (errorCode) {
|
|
65
|
+
case EthersErrorType.CallExecption:
|
|
66
|
+
const defaultErrorMessage = await getTransactionNotSentMessage(
|
|
67
|
+
step,
|
|
68
|
+
process
|
|
69
|
+
)
|
|
70
|
+
try {
|
|
71
|
+
if (!step?.action.fromChainId) {
|
|
72
|
+
throw new Error('fromChainId is not defined.')
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const response = await fetchTxErrorDetails(
|
|
76
|
+
e.transactionHash,
|
|
77
|
+
step?.action.fromChainId
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
const errorMessage = response?.error_message ?? e.reason
|
|
81
|
+
|
|
82
|
+
const isAllowanceError =
|
|
83
|
+
response?.error_message?.includes(
|
|
84
|
+
EthersErrorMessage.ERC20Allowance
|
|
85
|
+
) || e.reason?.includes(EthersErrorMessage.ERC20Allowance)
|
|
86
|
+
|
|
87
|
+
if (isAllowanceError) {
|
|
88
|
+
return new TransactionError(
|
|
89
|
+
LiFiErrorCode.AllowanceRequired,
|
|
90
|
+
e.reason,
|
|
91
|
+
errorMessage,
|
|
92
|
+
e.stack
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Error messages other than allowance error will be handled in catch block
|
|
97
|
+
throw new Error(e)
|
|
98
|
+
} catch (error) {
|
|
99
|
+
return new ProviderError(
|
|
100
|
+
LiFiErrorCode.TransactionFailed,
|
|
101
|
+
e.reason,
|
|
102
|
+
defaultErrorMessage,
|
|
103
|
+
e.stack
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
case EthersErrorType.InsufficientFunds:
|
|
107
|
+
return new TransactionError(
|
|
108
|
+
LiFiErrorCode.InsufficientFunds,
|
|
109
|
+
e.message,
|
|
110
|
+
await getTransactionNotSentMessage(step, process),
|
|
111
|
+
e.stack
|
|
112
|
+
)
|
|
113
|
+
case EthersErrorType.ActionRejected:
|
|
114
|
+
case MetaMaskProviderErrorCode.userRejectedRequest:
|
|
115
|
+
return new TransactionError(
|
|
116
|
+
LiFiErrorCode.SignatureRejected,
|
|
117
|
+
e.message,
|
|
118
|
+
await getTransactionNotSentMessage(step, process),
|
|
119
|
+
e.stack
|
|
120
|
+
)
|
|
121
|
+
case LiFiErrorCode.TransactionUnprepared:
|
|
122
|
+
return new TransactionError(
|
|
123
|
+
LiFiErrorCode.TransactionUnprepared,
|
|
124
|
+
e.message,
|
|
125
|
+
await getTransactionNotSentMessage(step, process),
|
|
126
|
+
e.stack
|
|
127
|
+
)
|
|
128
|
+
case LiFiErrorCode.ValidationError:
|
|
129
|
+
return new TransactionError(
|
|
130
|
+
LiFiErrorCode.ValidationError,
|
|
131
|
+
e.message,
|
|
132
|
+
e.htmlMessage
|
|
133
|
+
)
|
|
134
|
+
case LiFiErrorCode.TransactionCanceled:
|
|
135
|
+
return new TransactionError(
|
|
136
|
+
LiFiErrorCode.TransactionCanceled,
|
|
137
|
+
e.message,
|
|
138
|
+
e.htmlMessage
|
|
139
|
+
)
|
|
140
|
+
case LiFiErrorCode.ExchangeRateUpdateCanceled:
|
|
141
|
+
return new TransactionError(
|
|
142
|
+
LiFiErrorCode.ExchangeRateUpdateCanceled,
|
|
143
|
+
e.message,
|
|
144
|
+
e.htmlMessage
|
|
145
|
+
)
|
|
146
|
+
default: {
|
|
147
|
+
if (errorCode && typeof errorCode === 'number') {
|
|
148
|
+
if (Object.values(MetaMaskErrorCodes.rpc).includes(errorCode as any)) {
|
|
149
|
+
// rpc errors
|
|
150
|
+
// underpriced errors are sent as internal errors, so we need to parse the message manually
|
|
151
|
+
if (
|
|
152
|
+
errorCode === MetaMaskErrorCodes.rpc.internal &&
|
|
153
|
+
(e.message?.includes(EthersErrorMessage.Underpriced) ||
|
|
154
|
+
e.message?.includes(EthersErrorMessage.LowReplacementFee))
|
|
155
|
+
) {
|
|
156
|
+
return new RPCError(
|
|
157
|
+
LiFiErrorCode.TransactionUnderpriced,
|
|
158
|
+
ErrorMessage.TransactionUnderpriced,
|
|
159
|
+
await getTransactionNotSentMessage(step, process),
|
|
160
|
+
e.stack
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (
|
|
165
|
+
e.message?.includes(EthersErrorMessage.LowGas) ||
|
|
166
|
+
e.message?.includes(EthersErrorMessage.OutOfGas)
|
|
167
|
+
) {
|
|
168
|
+
return new TransactionError(
|
|
169
|
+
LiFiErrorCode.GasLimitError,
|
|
170
|
+
ErrorMessage.GasLimitLow,
|
|
171
|
+
await getTransactionNotSentMessage(step, process),
|
|
172
|
+
e.stack
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return new RPCError(
|
|
177
|
+
errorCode,
|
|
178
|
+
getMessageFromCode(errorCode),
|
|
179
|
+
await getTransactionNotSentMessage(step, process),
|
|
180
|
+
e.stack
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// provider errors
|
|
185
|
+
if (
|
|
186
|
+
Object.values(MetaMaskErrorCodes.provider).includes(errorCode as any)
|
|
187
|
+
) {
|
|
188
|
+
return new ProviderError(
|
|
189
|
+
errorCode,
|
|
190
|
+
getMessageFromCode(errorCode),
|
|
191
|
+
await getTransactionNotSentMessage(step, process),
|
|
192
|
+
e.stack
|
|
193
|
+
)
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return new UnknownError(
|
|
197
|
+
LiFiErrorCode.InternalError,
|
|
198
|
+
e.message || ErrorMessage.UnknownError,
|
|
199
|
+
undefined,
|
|
200
|
+
e.stack
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AddressZero, AlternativeAddressZero } from '../constants.js'
|
|
2
|
+
|
|
3
|
+
export const wait = (ms: number): Promise<undefined> => {
|
|
4
|
+
return new Promise((resolve) => {
|
|
5
|
+
setTimeout(resolve, ms)
|
|
6
|
+
})
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Repeatedly calls a given asynchronous function until it resolves with a value
|
|
11
|
+
* @param toRepeat The function that should be repeated
|
|
12
|
+
* @param timeout The timeout in milliseconds between retries, defaults to 5000
|
|
13
|
+
* @returns The result of the toRepeat function
|
|
14
|
+
*/
|
|
15
|
+
export const repeatUntilDone = async <T>(
|
|
16
|
+
toRepeat: () => Promise<T | undefined>,
|
|
17
|
+
timeout = 5000
|
|
18
|
+
): Promise<T> => {
|
|
19
|
+
let result: T | undefined
|
|
20
|
+
|
|
21
|
+
while (!result) {
|
|
22
|
+
result = await toRepeat()
|
|
23
|
+
if (!result) {
|
|
24
|
+
await wait(timeout)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return result
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const isZeroAddress = (address: string): boolean => {
|
|
32
|
+
if (address === AddressZero || address === AlternativeAddressZero) {
|
|
33
|
+
return true
|
|
34
|
+
}
|
|
35
|
+
return false
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const isNativeTokenAddress = (address: string): boolean => {
|
|
39
|
+
if (
|
|
40
|
+
address === AddressZero ||
|
|
41
|
+
address === AlternativeAddressZero ||
|
|
42
|
+
// CELO native token
|
|
43
|
+
address === '0x471ece3750da237f93b8e339c536989b8978a438'
|
|
44
|
+
) {
|
|
45
|
+
return true
|
|
46
|
+
}
|
|
47
|
+
return false
|
|
48
|
+
}
|
package/dist/version.ts
ADDED