@lifi/sdk 3.0.0-alpha.20 → 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.map +1 -0
- package/dist/_cjs/constants.js.map +1 -0
- package/dist/_cjs/core/BaseStepExecutor.js.map +1 -0
- package/dist/_cjs/core/EVM/EVM.js.map +1 -0
- package/dist/_cjs/core/EVM/EVMStepExecutor.js.map +1 -0
- package/dist/_cjs/core/EVM/abi.js.map +1 -0
- package/dist/_cjs/core/EVM/checkAllowance.js.map +1 -0
- package/dist/_cjs/core/EVM/getAllowance.js.map +1 -0
- package/dist/_cjs/core/EVM/getEVMBalance.js.map +1 -0
- package/dist/_cjs/core/EVM/multisig.js.map +1 -0
- package/dist/_cjs/core/EVM/publicClient.js.map +1 -0
- package/dist/_cjs/core/EVM/setAllowance.js.map +1 -0
- package/dist/_cjs/core/EVM/switchChain.js.map +1 -0
- package/dist/_cjs/core/EVM/types.js.map +1 -0
- package/dist/_cjs/core/EVM/utils.js.map +1 -0
- package/dist/_cjs/core/Solana/Solana.js.map +1 -0
- package/dist/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
- package/dist/_cjs/core/Solana/connection.js.map +1 -0
- package/dist/_cjs/core/Solana/getSolanaBalance.js.map +1 -0
- package/dist/_cjs/core/Solana/types.js.map +1 -0
- package/dist/_cjs/core/StatusManager.js.map +1 -0
- package/dist/_cjs/core/checkBalance.js.map +1 -0
- package/dist/_cjs/core/execution.js.map +1 -0
- package/dist/_cjs/core/executionState.js.map +1 -0
- package/dist/_cjs/core/index.js.map +1 -0
- package/dist/_cjs/core/prepareRestart.js.map +1 -0
- package/dist/_cjs/core/provider.js.map +1 -0
- package/dist/_cjs/core/stepComparison.js.map +1 -0
- package/dist/_cjs/core/types.js.map +1 -0
- package/dist/_cjs/core/utils.js.map +1 -0
- package/dist/_cjs/core/waitForReceivingTransaction.js.map +1 -0
- package/dist/_cjs/createConfig.js.map +1 -0
- package/dist/_cjs/helpers.js.map +1 -0
- package/dist/_cjs/index.js.map +1 -0
- package/dist/_cjs/request.js.map +1 -0
- package/dist/_cjs/services/api.js.map +1 -0
- package/dist/_cjs/services/balance.js.map +1 -0
- package/dist/_cjs/typeguards.js.map +1 -0
- package/dist/_cjs/types/index.js.map +1 -0
- package/dist/_cjs/types/internal.js.map +1 -0
- package/dist/_cjs/utils/errors.js.map +1 -0
- package/dist/_cjs/utils/getTransactionMessage.js.map +1 -0
- package/dist/_cjs/utils/index.js.map +1 -0
- package/dist/_cjs/utils/median.js.map +1 -0
- package/dist/_cjs/utils/parseBackendError.js.map +1 -0
- package/dist/_cjs/utils/parseError.js.map +1 -0
- package/dist/_cjs/utils/utils.js.map +1 -0
- package/dist/{cjs → _cjs}/version.js +1 -1
- package/dist/_cjs/version.js.map +1 -0
- package/dist/_esm/config.js.map +1 -0
- package/dist/_esm/constants.js.map +1 -0
- package/dist/_esm/core/BaseStepExecutor.js.map +1 -0
- package/dist/_esm/core/EVM/EVM.js.map +1 -0
- package/dist/_esm/core/EVM/EVMStepExecutor.js.map +1 -0
- package/dist/_esm/core/EVM/abi.js.map +1 -0
- package/dist/_esm/core/EVM/checkAllowance.js.map +1 -0
- package/dist/_esm/core/EVM/getAllowance.js.map +1 -0
- package/dist/_esm/core/EVM/getEVMBalance.js.map +1 -0
- package/dist/_esm/core/EVM/multisig.js.map +1 -0
- package/dist/_esm/core/EVM/publicClient.js.map +1 -0
- package/dist/_esm/core/EVM/setAllowance.js.map +1 -0
- package/dist/_esm/core/EVM/switchChain.js.map +1 -0
- package/dist/_esm/core/EVM/types.js.map +1 -0
- package/dist/_esm/core/EVM/utils.js.map +1 -0
- package/dist/_esm/core/Solana/Solana.js.map +1 -0
- package/dist/_esm/core/Solana/SolanaStepExecutor.js.map +1 -0
- package/dist/_esm/core/Solana/connection.js.map +1 -0
- package/dist/_esm/core/Solana/getSolanaBalance.js.map +1 -0
- package/dist/_esm/core/Solana/types.js.map +1 -0
- package/dist/_esm/core/StatusManager.js.map +1 -0
- package/dist/_esm/core/checkBalance.js.map +1 -0
- package/dist/_esm/core/execution.js.map +1 -0
- package/dist/_esm/core/executionState.js.map +1 -0
- package/dist/_esm/core/index.js.map +1 -0
- package/dist/_esm/core/prepareRestart.js.map +1 -0
- package/dist/_esm/core/provider.js.map +1 -0
- package/dist/_esm/core/stepComparison.js.map +1 -0
- package/dist/_esm/core/types.js.map +1 -0
- package/dist/_esm/core/utils.js.map +1 -0
- package/dist/_esm/core/waitForReceivingTransaction.js.map +1 -0
- package/dist/_esm/createConfig.js.map +1 -0
- package/dist/_esm/helpers.js.map +1 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/request.js.map +1 -0
- package/dist/_esm/services/api.js.map +1 -0
- package/dist/_esm/services/balance.js.map +1 -0
- package/dist/_esm/typeguards.js.map +1 -0
- package/dist/_esm/types/index.js.map +1 -0
- package/dist/_esm/types/internal.js.map +1 -0
- package/dist/_esm/utils/errors.js.map +1 -0
- package/dist/_esm/utils/getTransactionMessage.js.map +1 -0
- package/dist/_esm/utils/index.js.map +1 -0
- package/dist/_esm/utils/median.js.map +1 -0
- package/dist/_esm/utils/parseBackendError.js.map +1 -0
- package/dist/_esm/utils/parseError.js.map +1 -0
- 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.map +1 -0
- package/dist/_types/constants.d.ts.map +1 -0
- package/dist/_types/core/BaseStepExecutor.d.ts.map +1 -0
- package/dist/_types/core/EVM/EVM.d.ts.map +1 -0
- package/dist/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
- package/dist/_types/core/EVM/abi.d.ts.map +1 -0
- package/dist/_types/core/EVM/checkAllowance.d.ts.map +1 -0
- package/dist/_types/core/EVM/getAllowance.d.ts.map +1 -0
- package/dist/_types/core/EVM/getEVMBalance.d.ts.map +1 -0
- package/dist/_types/core/EVM/multisig.d.ts.map +1 -0
- package/dist/_types/core/EVM/publicClient.d.ts.map +1 -0
- package/dist/_types/core/EVM/setAllowance.d.ts.map +1 -0
- package/dist/_types/core/EVM/switchChain.d.ts.map +1 -0
- package/dist/_types/core/EVM/types.d.ts.map +1 -0
- package/dist/_types/core/EVM/utils.d.ts.map +1 -0
- package/dist/_types/core/Solana/Solana.d.ts.map +1 -0
- package/dist/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
- package/dist/_types/core/Solana/connection.d.ts.map +1 -0
- package/dist/_types/core/Solana/getSolanaBalance.d.ts.map +1 -0
- package/dist/_types/core/Solana/types.d.ts.map +1 -0
- package/dist/_types/core/StatusManager.d.ts.map +1 -0
- package/dist/_types/core/checkBalance.d.ts.map +1 -0
- package/dist/_types/core/execution.d.ts.map +1 -0
- package/dist/_types/core/executionState.d.ts.map +1 -0
- package/dist/_types/core/index.d.ts.map +1 -0
- package/dist/_types/core/prepareRestart.d.ts.map +1 -0
- package/dist/_types/core/provider.d.ts.map +1 -0
- package/dist/_types/core/stepComparison.d.ts.map +1 -0
- package/dist/_types/core/types.d.ts.map +1 -0
- package/dist/_types/core/utils.d.ts.map +1 -0
- package/dist/_types/core/waitForReceivingTransaction.d.ts.map +1 -0
- package/dist/_types/createConfig.d.ts.map +1 -0
- package/dist/_types/helpers.d.ts.map +1 -0
- package/dist/_types/index.d.ts.map +1 -0
- package/dist/_types/request.d.ts.map +1 -0
- package/dist/_types/services/api.d.ts.map +1 -0
- package/dist/_types/services/balance.d.ts.map +1 -0
- package/dist/_types/typeguards.d.ts.map +1 -0
- package/dist/_types/types/index.d.ts.map +1 -0
- package/dist/_types/types/internal.d.ts.map +1 -0
- package/dist/_types/utils/errors.d.ts.map +1 -0
- package/dist/_types/utils/getTransactionMessage.d.ts.map +1 -0
- package/dist/_types/utils/index.d.ts.map +1 -0
- package/dist/_types/utils/median.d.ts.map +1 -0
- package/dist/_types/utils/parseBackendError.d.ts.map +1 -0
- package/dist/_types/utils/parseError.d.ts.map +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 +8 -8
- package/dist/cjs/config.js.map +0 -1
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/core/BaseStepExecutor.js.map +0 -1
- package/dist/cjs/core/EVM/EVM.js.map +0 -1
- package/dist/cjs/core/EVM/EVMStepExecutor.js.map +0 -1
- package/dist/cjs/core/EVM/abi.js.map +0 -1
- package/dist/cjs/core/EVM/checkAllowance.js.map +0 -1
- package/dist/cjs/core/EVM/getAllowance.js.map +0 -1
- package/dist/cjs/core/EVM/getEVMBalance.js.map +0 -1
- package/dist/cjs/core/EVM/multisig.js.map +0 -1
- package/dist/cjs/core/EVM/publicClient.js.map +0 -1
- package/dist/cjs/core/EVM/setAllowance.js.map +0 -1
- package/dist/cjs/core/EVM/switchChain.js.map +0 -1
- package/dist/cjs/core/EVM/types.js.map +0 -1
- package/dist/cjs/core/EVM/utils.js.map +0 -1
- package/dist/cjs/core/Solana/Solana.js.map +0 -1
- package/dist/cjs/core/Solana/SolanaStepExecutor.js.map +0 -1
- package/dist/cjs/core/Solana/connection.js.map +0 -1
- package/dist/cjs/core/Solana/getSolanaBalance.js.map +0 -1
- package/dist/cjs/core/Solana/types.js.map +0 -1
- package/dist/cjs/core/StatusManager.js.map +0 -1
- package/dist/cjs/core/checkBalance.js.map +0 -1
- package/dist/cjs/core/execution.js.map +0 -1
- package/dist/cjs/core/executionState.js.map +0 -1
- package/dist/cjs/core/index.js.map +0 -1
- package/dist/cjs/core/prepareRestart.js.map +0 -1
- package/dist/cjs/core/provider.js.map +0 -1
- package/dist/cjs/core/stepComparison.js.map +0 -1
- package/dist/cjs/core/types.js.map +0 -1
- package/dist/cjs/core/utils.js.map +0 -1
- package/dist/cjs/core/waitForReceivingTransaction.js.map +0 -1
- package/dist/cjs/createConfig.js.map +0 -1
- package/dist/cjs/helpers.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/request.js.map +0 -1
- package/dist/cjs/services/api.js.map +0 -1
- package/dist/cjs/services/balance.js.map +0 -1
- package/dist/cjs/typeguards.js.map +0 -1
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/internal.js.map +0 -1
- package/dist/cjs/utils/errors.js.map +0 -1
- package/dist/cjs/utils/getTransactionMessage.js.map +0 -1
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/median.js.map +0 -1
- package/dist/cjs/utils/parseBackendError.js.map +0 -1
- package/dist/cjs/utils/parseError.js.map +0 -1
- package/dist/cjs/utils/utils.js.map +0 -1
- package/dist/cjs/version.js.map +0 -1
- package/dist/esm/config.js.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/core/BaseStepExecutor.js.map +0 -1
- package/dist/esm/core/EVM/EVM.js.map +0 -1
- package/dist/esm/core/EVM/EVMStepExecutor.js.map +0 -1
- package/dist/esm/core/EVM/abi.js.map +0 -1
- package/dist/esm/core/EVM/checkAllowance.js.map +0 -1
- package/dist/esm/core/EVM/getAllowance.js.map +0 -1
- package/dist/esm/core/EVM/getEVMBalance.js.map +0 -1
- package/dist/esm/core/EVM/multisig.js.map +0 -1
- package/dist/esm/core/EVM/publicClient.js.map +0 -1
- package/dist/esm/core/EVM/setAllowance.js.map +0 -1
- package/dist/esm/core/EVM/switchChain.js.map +0 -1
- package/dist/esm/core/EVM/types.js.map +0 -1
- package/dist/esm/core/EVM/utils.js.map +0 -1
- package/dist/esm/core/Solana/Solana.js.map +0 -1
- package/dist/esm/core/Solana/SolanaStepExecutor.js.map +0 -1
- package/dist/esm/core/Solana/connection.js.map +0 -1
- package/dist/esm/core/Solana/getSolanaBalance.js.map +0 -1
- package/dist/esm/core/Solana/types.js.map +0 -1
- package/dist/esm/core/StatusManager.js.map +0 -1
- package/dist/esm/core/checkBalance.js.map +0 -1
- package/dist/esm/core/execution.js.map +0 -1
- package/dist/esm/core/executionState.js.map +0 -1
- package/dist/esm/core/index.js.map +0 -1
- package/dist/esm/core/prepareRestart.js.map +0 -1
- package/dist/esm/core/provider.js.map +0 -1
- package/dist/esm/core/stepComparison.js.map +0 -1
- package/dist/esm/core/types.js.map +0 -1
- package/dist/esm/core/utils.js.map +0 -1
- package/dist/esm/core/waitForReceivingTransaction.js.map +0 -1
- package/dist/esm/createConfig.js.map +0 -1
- package/dist/esm/helpers.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/request.js.map +0 -1
- package/dist/esm/services/api.js.map +0 -1
- package/dist/esm/services/balance.js.map +0 -1
- package/dist/esm/typeguards.js.map +0 -1
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/internal.js.map +0 -1
- package/dist/esm/utils/errors.js.map +0 -1
- package/dist/esm/utils/getTransactionMessage.js.map +0 -1
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/median.js.map +0 -1
- package/dist/esm/utils/parseBackendError.js.map +0 -1
- package/dist/esm/utils/parseError.js.map +0 -1
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/version.js +0 -3
- package/dist/esm/version.js.map +0 -1
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/core/BaseStepExecutor.d.ts.map +0 -1
- package/dist/types/core/EVM/EVM.d.ts.map +0 -1
- package/dist/types/core/EVM/EVMStepExecutor.d.ts.map +0 -1
- package/dist/types/core/EVM/abi.d.ts.map +0 -1
- package/dist/types/core/EVM/checkAllowance.d.ts.map +0 -1
- package/dist/types/core/EVM/getAllowance.d.ts.map +0 -1
- package/dist/types/core/EVM/getEVMBalance.d.ts.map +0 -1
- package/dist/types/core/EVM/multisig.d.ts.map +0 -1
- package/dist/types/core/EVM/publicClient.d.ts.map +0 -1
- package/dist/types/core/EVM/setAllowance.d.ts.map +0 -1
- package/dist/types/core/EVM/switchChain.d.ts.map +0 -1
- package/dist/types/core/EVM/types.d.ts.map +0 -1
- package/dist/types/core/EVM/utils.d.ts.map +0 -1
- package/dist/types/core/Solana/Solana.d.ts.map +0 -1
- package/dist/types/core/Solana/SolanaStepExecutor.d.ts.map +0 -1
- package/dist/types/core/Solana/connection.d.ts.map +0 -1
- package/dist/types/core/Solana/getSolanaBalance.d.ts.map +0 -1
- package/dist/types/core/Solana/types.d.ts.map +0 -1
- package/dist/types/core/StatusManager.d.ts.map +0 -1
- package/dist/types/core/checkBalance.d.ts.map +0 -1
- package/dist/types/core/execution.d.ts.map +0 -1
- package/dist/types/core/executionState.d.ts.map +0 -1
- package/dist/types/core/index.d.ts.map +0 -1
- package/dist/types/core/prepareRestart.d.ts.map +0 -1
- package/dist/types/core/provider.d.ts.map +0 -1
- package/dist/types/core/stepComparison.d.ts.map +0 -1
- package/dist/types/core/types.d.ts.map +0 -1
- package/dist/types/core/utils.d.ts.map +0 -1
- package/dist/types/core/waitForReceivingTransaction.d.ts.map +0 -1
- package/dist/types/createConfig.d.ts.map +0 -1
- package/dist/types/helpers.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/request.d.ts.map +0 -1
- package/dist/types/services/api.d.ts.map +0 -1
- package/dist/types/services/balance.d.ts.map +0 -1
- package/dist/types/typeguards.d.ts.map +0 -1
- package/dist/types/types/index.d.ts.map +0 -1
- package/dist/types/types/internal.d.ts.map +0 -1
- package/dist/types/utils/errors.d.ts.map +0 -1
- package/dist/types/utils/getTransactionMessage.d.ts.map +0 -1
- package/dist/types/utils/index.d.ts.map +0 -1
- package/dist/types/utils/median.d.ts.map +0 -1
- package/dist/types/utils/parseBackendError.d.ts.map +0 -1
- package/dist/types/utils/parseError.d.ts.map +0 -1
- package/dist/types/utils/utils.d.ts.map +0 -1
- package/dist/types/version.d.ts +0 -3
- package/dist/types/version.d.ts.map +0 -1
- /package/dist/{cjs → _cjs}/config.js +0 -0
- /package/dist/{cjs → _cjs}/constants.js +0 -0
- /package/dist/{cjs → _cjs}/core/BaseStepExecutor.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/EVM.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/EVMStepExecutor.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/abi.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/checkAllowance.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/getAllowance.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/getEVMBalance.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/multisig.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/publicClient.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/setAllowance.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/switchChain.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/types.js +0 -0
- /package/dist/{cjs → _cjs}/core/EVM/utils.js +0 -0
- /package/dist/{cjs → _cjs}/core/Solana/Solana.js +0 -0
- /package/dist/{cjs → _cjs}/core/Solana/SolanaStepExecutor.js +0 -0
- /package/dist/{cjs → _cjs}/core/Solana/connection.js +0 -0
- /package/dist/{cjs → _cjs}/core/Solana/getSolanaBalance.js +0 -0
- /package/dist/{cjs → _cjs}/core/Solana/types.js +0 -0
- /package/dist/{cjs → _cjs}/core/StatusManager.js +0 -0
- /package/dist/{cjs → _cjs}/core/checkBalance.js +0 -0
- /package/dist/{cjs → _cjs}/core/execution.js +0 -0
- /package/dist/{cjs → _cjs}/core/executionState.js +0 -0
- /package/dist/{cjs → _cjs}/core/index.js +0 -0
- /package/dist/{cjs → _cjs}/core/prepareRestart.js +0 -0
- /package/dist/{cjs → _cjs}/core/provider.js +0 -0
- /package/dist/{cjs → _cjs}/core/stepComparison.js +0 -0
- /package/dist/{cjs → _cjs}/core/types.js +0 -0
- /package/dist/{cjs → _cjs}/core/utils.js +0 -0
- /package/dist/{cjs → _cjs}/core/waitForReceivingTransaction.js +0 -0
- /package/dist/{cjs → _cjs}/createConfig.js +0 -0
- /package/dist/{cjs → _cjs}/helpers.js +0 -0
- /package/dist/{cjs → _cjs}/index.js +0 -0
- /package/dist/{cjs → _cjs}/package.json +0 -0
- /package/dist/{cjs → _cjs}/request.js +0 -0
- /package/dist/{cjs → _cjs}/services/api.js +0 -0
- /package/dist/{cjs → _cjs}/services/balance.js +0 -0
- /package/dist/{cjs → _cjs}/typeguards.js +0 -0
- /package/dist/{cjs → _cjs}/types/index.js +0 -0
- /package/dist/{cjs → _cjs}/types/internal.js +0 -0
- /package/dist/{cjs → _cjs}/utils/errors.js +0 -0
- /package/dist/{cjs → _cjs}/utils/getTransactionMessage.js +0 -0
- /package/dist/{cjs → _cjs}/utils/index.js +0 -0
- /package/dist/{cjs → _cjs}/utils/median.js +0 -0
- /package/dist/{cjs → _cjs}/utils/parseBackendError.js +0 -0
- /package/dist/{cjs → _cjs}/utils/parseError.js +0 -0
- /package/dist/{cjs → _cjs}/utils/utils.js +0 -0
- /package/dist/{esm → _esm}/config.js +0 -0
- /package/dist/{esm → _esm}/constants.js +0 -0
- /package/dist/{esm → _esm}/core/BaseStepExecutor.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/EVM.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/EVMStepExecutor.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/abi.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/checkAllowance.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/getAllowance.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/getEVMBalance.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/multisig.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/publicClient.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/setAllowance.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/switchChain.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/types.js +0 -0
- /package/dist/{esm → _esm}/core/EVM/utils.js +0 -0
- /package/dist/{esm → _esm}/core/Solana/Solana.js +0 -0
- /package/dist/{esm → _esm}/core/Solana/SolanaStepExecutor.js +0 -0
- /package/dist/{esm → _esm}/core/Solana/connection.js +0 -0
- /package/dist/{esm → _esm}/core/Solana/getSolanaBalance.js +0 -0
- /package/dist/{esm → _esm}/core/Solana/types.js +0 -0
- /package/dist/{esm → _esm}/core/StatusManager.js +0 -0
- /package/dist/{esm → _esm}/core/checkBalance.js +0 -0
- /package/dist/{esm → _esm}/core/execution.js +0 -0
- /package/dist/{esm → _esm}/core/executionState.js +0 -0
- /package/dist/{esm → _esm}/core/index.js +0 -0
- /package/dist/{esm → _esm}/core/prepareRestart.js +0 -0
- /package/dist/{esm → _esm}/core/provider.js +0 -0
- /package/dist/{esm → _esm}/core/stepComparison.js +0 -0
- /package/dist/{esm → _esm}/core/types.js +0 -0
- /package/dist/{esm → _esm}/core/utils.js +0 -0
- /package/dist/{esm → _esm}/core/waitForReceivingTransaction.js +0 -0
- /package/dist/{esm → _esm}/createConfig.js +0 -0
- /package/dist/{esm → _esm}/helpers.js +0 -0
- /package/dist/{esm → _esm}/index.js +0 -0
- /package/dist/{esm → _esm}/package.json +0 -0
- /package/dist/{esm → _esm}/request.js +0 -0
- /package/dist/{esm → _esm}/services/api.js +0 -0
- /package/dist/{esm → _esm}/services/balance.js +0 -0
- /package/dist/{esm → _esm}/typeguards.js +0 -0
- /package/dist/{esm → _esm}/types/index.js +0 -0
- /package/dist/{esm → _esm}/types/internal.js +0 -0
- /package/dist/{esm → _esm}/utils/errors.js +0 -0
- /package/dist/{esm → _esm}/utils/getTransactionMessage.js +0 -0
- /package/dist/{esm → _esm}/utils/index.js +0 -0
- /package/dist/{esm → _esm}/utils/median.js +0 -0
- /package/dist/{esm → _esm}/utils/parseBackendError.js +0 -0
- /package/dist/{esm → _esm}/utils/parseError.js +0 -0
- /package/dist/{esm → _esm}/utils/utils.js +0 -0
- /package/dist/{types → _types}/config.d.ts +0 -0
- /package/dist/{types → _types}/constants.d.ts +0 -0
- /package/dist/{types → _types}/core/BaseStepExecutor.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/EVM.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/EVMStepExecutor.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/abi.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/checkAllowance.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/getAllowance.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/getEVMBalance.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/multisig.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/publicClient.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/setAllowance.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/switchChain.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/types.d.ts +0 -0
- /package/dist/{types → _types}/core/EVM/utils.d.ts +0 -0
- /package/dist/{types → _types}/core/Solana/Solana.d.ts +0 -0
- /package/dist/{types → _types}/core/Solana/SolanaStepExecutor.d.ts +0 -0
- /package/dist/{types → _types}/core/Solana/connection.d.ts +0 -0
- /package/dist/{types → _types}/core/Solana/getSolanaBalance.d.ts +0 -0
- /package/dist/{types → _types}/core/Solana/types.d.ts +0 -0
- /package/dist/{types → _types}/core/StatusManager.d.ts +0 -0
- /package/dist/{types → _types}/core/checkBalance.d.ts +0 -0
- /package/dist/{types → _types}/core/execution.d.ts +0 -0
- /package/dist/{types → _types}/core/executionState.d.ts +0 -0
- /package/dist/{types → _types}/core/index.d.ts +0 -0
- /package/dist/{types → _types}/core/prepareRestart.d.ts +0 -0
- /package/dist/{types → _types}/core/provider.d.ts +0 -0
- /package/dist/{types → _types}/core/stepComparison.d.ts +0 -0
- /package/dist/{types → _types}/core/types.d.ts +0 -0
- /package/dist/{types → _types}/core/utils.d.ts +0 -0
- /package/dist/{types → _types}/core/waitForReceivingTransaction.d.ts +0 -0
- /package/dist/{types → _types}/createConfig.d.ts +0 -0
- /package/dist/{types → _types}/helpers.d.ts +0 -0
- /package/dist/{types → _types}/index.d.ts +0 -0
- /package/dist/{types → _types}/request.d.ts +0 -0
- /package/dist/{types → _types}/services/api.d.ts +0 -0
- /package/dist/{types → _types}/services/balance.d.ts +0 -0
- /package/dist/{types → _types}/typeguards.d.ts +0 -0
- /package/dist/{types → _types}/types/index.d.ts +0 -0
- /package/dist/{types → _types}/types/internal.d.ts +0 -0
- /package/dist/{types → _types}/utils/errors.d.ts +0 -0
- /package/dist/{types → _types}/utils/getTransactionMessage.d.ts +0 -0
- /package/dist/{types → _types}/utils/index.d.ts +0 -0
- /package/dist/{types → _types}/utils/median.d.ts +0 -0
- /package/dist/{types → _types}/utils/parseBackendError.d.ts +0 -0
- /package/dist/{types → _types}/utils/parseError.d.ts +0 -0
- /package/dist/{types → _types}/utils/utils.d.ts +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FullStatusData,
|
|
3
|
+
LiFiStep,
|
|
4
|
+
ProcessType,
|
|
5
|
+
StatusResponse,
|
|
6
|
+
} from '@lifi/types'
|
|
7
|
+
import { getStatus } from '../services/api.js'
|
|
8
|
+
import { ServerError } from '../utils/errors.js'
|
|
9
|
+
import { repeatUntilDone } from '../utils/utils.js'
|
|
10
|
+
import type { StatusManager } from './StatusManager.js'
|
|
11
|
+
import { getSubstatusMessage } from './utils.js'
|
|
12
|
+
|
|
13
|
+
const TRANSACTION_HASH_OBSERVERS: Record<string, Promise<StatusResponse>> = {}
|
|
14
|
+
|
|
15
|
+
export async function waitForReceivingTransaction(
|
|
16
|
+
txHash: string,
|
|
17
|
+
statusManager: StatusManager,
|
|
18
|
+
processType: ProcessType,
|
|
19
|
+
step: LiFiStep
|
|
20
|
+
): Promise<StatusResponse> {
|
|
21
|
+
const _getStatus = (): Promise<StatusResponse | undefined> =>
|
|
22
|
+
new Promise(async (resolve, reject) => {
|
|
23
|
+
let statusResponse: StatusResponse
|
|
24
|
+
try {
|
|
25
|
+
statusResponse = await getStatus({
|
|
26
|
+
bridge: step.tool,
|
|
27
|
+
fromChain: step.action.fromChainId,
|
|
28
|
+
toChain: step.action.toChainId,
|
|
29
|
+
txHash,
|
|
30
|
+
})
|
|
31
|
+
} catch (e: any) {
|
|
32
|
+
console.debug('Fetching status from backend failed.', e)
|
|
33
|
+
return resolve(undefined)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
switch (statusResponse.status) {
|
|
37
|
+
case 'DONE':
|
|
38
|
+
return resolve(statusResponse)
|
|
39
|
+
case 'PENDING':
|
|
40
|
+
statusManager?.updateProcess(step, processType, 'PENDING', {
|
|
41
|
+
substatus: statusResponse.substatus,
|
|
42
|
+
substatusMessage:
|
|
43
|
+
statusResponse.substatusMessage ||
|
|
44
|
+
getSubstatusMessage(
|
|
45
|
+
statusResponse.status,
|
|
46
|
+
statusResponse.substatus
|
|
47
|
+
),
|
|
48
|
+
txLink: (statusResponse as FullStatusData).bridgeExplorerLink,
|
|
49
|
+
})
|
|
50
|
+
return resolve(undefined)
|
|
51
|
+
case 'NOT_FOUND':
|
|
52
|
+
return resolve(undefined)
|
|
53
|
+
case 'FAILED':
|
|
54
|
+
default:
|
|
55
|
+
return reject()
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
let status
|
|
60
|
+
|
|
61
|
+
if (txHash in TRANSACTION_HASH_OBSERVERS) {
|
|
62
|
+
status = await TRANSACTION_HASH_OBSERVERS[txHash]
|
|
63
|
+
} else {
|
|
64
|
+
TRANSACTION_HASH_OBSERVERS[txHash] = repeatUntilDone(_getStatus, 5_000)
|
|
65
|
+
status = await TRANSACTION_HASH_OBSERVERS[txHash]
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (!status.receiving) {
|
|
69
|
+
throw new ServerError("Status doesn't contain receiving information.")
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return status
|
|
73
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
+
import type { ChainId } from '@lifi/types'
|
|
3
|
+
import { config } from './config.js'
|
|
4
|
+
import { isEVM } from './core/EVM/types.js'
|
|
5
|
+
import { checkPackageUpdates } from './helpers.js'
|
|
6
|
+
import { getChains } from './services/api.js'
|
|
7
|
+
import type { SDKOptions } from './types/index.js'
|
|
8
|
+
import { name, version } from './version.js'
|
|
9
|
+
|
|
10
|
+
function createBaseConfig(options: SDKOptions) {
|
|
11
|
+
if (!options.integrator) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
'Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'
|
|
14
|
+
)
|
|
15
|
+
}
|
|
16
|
+
config.set(options)
|
|
17
|
+
checkPackageUpdates(name, version, options.disableVersionCheck)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export async function createChainsConfig() {
|
|
21
|
+
const _config = config.get()
|
|
22
|
+
const chainTypes = _config.providers?.map((provider) => provider.type)
|
|
23
|
+
config.loading = getChains({ chainTypes: chainTypes }).then((chains) => {
|
|
24
|
+
config.chains = chains
|
|
25
|
+
const evmProvider = _config.providers?.find(isEVM)
|
|
26
|
+
const multicallAddresses: Partial<Record<ChainId, string>> = {}
|
|
27
|
+
for (const chain of chains) {
|
|
28
|
+
const chainId = chain.id as ChainId
|
|
29
|
+
|
|
30
|
+
// set RPCs if they were not configured by the user before
|
|
31
|
+
if (!_config.rpcUrls[chainId]?.length) {
|
|
32
|
+
_config.rpcUrls[chainId] = chain.metamask.rpcUrls
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// set multicall addresses if they exist and were not configured by the user before
|
|
36
|
+
if (chain.multicallAddress && !evmProvider?.multicall?.[chainId]) {
|
|
37
|
+
multicallAddresses[chainId] = chain.multicallAddress
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
evmProvider?.setOptions({
|
|
41
|
+
multicall: multicallAddresses,
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
await config.loading
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function createConfig(options: SDKOptions) {
|
|
48
|
+
createBaseConfig(options)
|
|
49
|
+
createChainsConfig()
|
|
50
|
+
return {
|
|
51
|
+
set: config.set,
|
|
52
|
+
get: config.get,
|
|
53
|
+
}
|
|
54
|
+
}
|
package/dist/helpers.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { LiFiStep, Route } from '@lifi/types'
|
|
2
|
+
import { request } from './request.js'
|
|
3
|
+
import type { TenderlyResponse } from './types/index.js'
|
|
4
|
+
import { ValidationError } from './utils/errors.js'
|
|
5
|
+
import { name, version } from './version.js'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Returns a random number between min (inclusive) and max (inclusive)
|
|
9
|
+
* @param min - minimum number.
|
|
10
|
+
* @param max - maximum number.
|
|
11
|
+
* @returns - random number.
|
|
12
|
+
*/
|
|
13
|
+
export const getRandomNumber = (min: number, max: number): number => {
|
|
14
|
+
return Math.floor(Math.random() * (max - min + 1) + min)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function semverCompare(a: string, b: string) {
|
|
18
|
+
if (a.startsWith(b + '-')) {
|
|
19
|
+
return -1
|
|
20
|
+
}
|
|
21
|
+
if (b.startsWith(a + '-')) {
|
|
22
|
+
return 1
|
|
23
|
+
}
|
|
24
|
+
return a.localeCompare(b, undefined, {
|
|
25
|
+
numeric: true,
|
|
26
|
+
sensitivity: 'case',
|
|
27
|
+
caseFirst: 'upper',
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const checkPackageUpdates = async (
|
|
32
|
+
packageName?: string,
|
|
33
|
+
packageVersion?: string,
|
|
34
|
+
disableCheck?: boolean
|
|
35
|
+
) => {
|
|
36
|
+
if (disableCheck || process.env.NODE_ENV !== 'development') {
|
|
37
|
+
return
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const pkgName = packageName ?? name
|
|
41
|
+
const response = await request<{ version: string }>(
|
|
42
|
+
`https://registry.npmjs.org/${pkgName}/latest`,
|
|
43
|
+
{ skipTrackingHeaders: true }
|
|
44
|
+
)
|
|
45
|
+
const latestVersion = response.version
|
|
46
|
+
const currentVersion = packageVersion ?? version
|
|
47
|
+
if (semverCompare(latestVersion, currentVersion)) {
|
|
48
|
+
console.warn(
|
|
49
|
+
// eslint-disable-next-line max-len
|
|
50
|
+
`${pkgName}: new package version is available. Please update as soon as possible to enjoy the newest features. Current version: ${currentVersion}. Latest version: ${latestVersion}.`
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
} catch (error) {
|
|
54
|
+
// Cannot verify version, might be network error etc. We don't bother showing anything in that case
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Converts a quote to Route
|
|
60
|
+
* @param step - Step returned from the quote endpoint.
|
|
61
|
+
* @returns - The route to be executed.
|
|
62
|
+
* @throws {ValidationError} Throws a ValidationError if the step has missing values.
|
|
63
|
+
*/
|
|
64
|
+
export const convertQuoteToRoute = (step: LiFiStep): Route => {
|
|
65
|
+
if (!step.estimate.fromAmountUSD) {
|
|
66
|
+
throw new ValidationError("Missing 'fromAmountUSD' in step estimate.")
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (!step.estimate.toAmountUSD) {
|
|
70
|
+
throw new ValidationError("Missing 'toAmountUSD' in step estimate.")
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const route: Route = {
|
|
74
|
+
fromToken: step.action.fromToken,
|
|
75
|
+
toToken: step.action.toToken,
|
|
76
|
+
fromAmount: step.action.fromAmount,
|
|
77
|
+
toAmount: step.estimate.toAmount,
|
|
78
|
+
id: step.id,
|
|
79
|
+
fromChainId: step.action.fromToken.chainId,
|
|
80
|
+
toChainId: step.action.toToken.chainId,
|
|
81
|
+
fromAmountUSD: step.estimate.fromAmountUSD,
|
|
82
|
+
toAmountUSD: step.estimate.toAmountUSD,
|
|
83
|
+
steps: [step],
|
|
84
|
+
toAmountMin: step.estimate.toAmountMin,
|
|
85
|
+
insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return route
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const fetchTxErrorDetails = async (txHash: string, chainId: number) => {
|
|
92
|
+
const response = await request<TenderlyResponse>(
|
|
93
|
+
`https://api.tenderly.co/api/v1/public-contract/${chainId}/tx/${txHash}`
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
return response
|
|
97
|
+
}
|
package/dist/index.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from '@lifi/types'
|
|
2
|
+
export { EVM } from './core/EVM/EVM.js'
|
|
3
|
+
export { Solana } from './core/Solana/Solana.js'
|
|
4
|
+
export * from './core/index.js'
|
|
5
|
+
export { createConfig } from './createConfig.js'
|
|
6
|
+
export * from './helpers.js'
|
|
7
|
+
export * from './services/api.js'
|
|
8
|
+
export * from './services/balance.js'
|
|
9
|
+
export * from './types/index.js'
|
|
10
|
+
export * from './utils/errors.js'
|
|
11
|
+
export { LiFiError, type ErrorCode } from './utils/errors.js'
|
package/dist/request.ts
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { config } from './config.js'
|
|
2
|
+
import { HTTPError } from './utils/errors.js'
|
|
3
|
+
import { wait } from './utils/utils.js'
|
|
4
|
+
import { version } from './version.js'
|
|
5
|
+
|
|
6
|
+
export const requestSettings = {
|
|
7
|
+
retries: 1,
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface ExtendedRequestInit extends RequestInit {
|
|
11
|
+
retries?: number
|
|
12
|
+
skipTrackingHeaders?: boolean
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const request = async <T = Response>(
|
|
16
|
+
url: RequestInfo | URL,
|
|
17
|
+
options: ExtendedRequestInit = {
|
|
18
|
+
retries: requestSettings.retries,
|
|
19
|
+
}
|
|
20
|
+
): Promise<T> => {
|
|
21
|
+
const { userId, integrator, widgetVersion, apiKey } = config.get()
|
|
22
|
+
if (!integrator) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
'Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
options.retries = options.retries ?? requestSettings.retries
|
|
28
|
+
try {
|
|
29
|
+
if (!options.skipTrackingHeaders) {
|
|
30
|
+
if (apiKey) {
|
|
31
|
+
options.headers = {
|
|
32
|
+
...options?.headers,
|
|
33
|
+
'x-lifi-api-key': apiKey,
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (userId) {
|
|
38
|
+
options.headers = {
|
|
39
|
+
...options?.headers,
|
|
40
|
+
'x-lifi-userid': userId,
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (widgetVersion) {
|
|
45
|
+
options.headers = {
|
|
46
|
+
...options?.headers,
|
|
47
|
+
'x-lifi-widget': widgetVersion,
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (version) {
|
|
52
|
+
options.headers = {
|
|
53
|
+
...options?.headers,
|
|
54
|
+
'x-lifi-sdk': version,
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// integrator is mandatory during SDK initialization
|
|
59
|
+
options.headers = {
|
|
60
|
+
...options?.headers,
|
|
61
|
+
'x-lifi-integrator': integrator,
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const response: Response = await fetch(url, options)
|
|
66
|
+
if (!response.ok) {
|
|
67
|
+
throw new HTTPError(response)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const data: T = await response.json()
|
|
71
|
+
return data
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (options.retries > 0 && (error as HTTPError)?.status === 500) {
|
|
74
|
+
await wait(500)
|
|
75
|
+
return request<T>(url, { ...options, retries: options.retries - 1 })
|
|
76
|
+
}
|
|
77
|
+
throw error
|
|
78
|
+
}
|
|
79
|
+
}
|