@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,472 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ChainId,
|
|
3
|
+
ChainKey,
|
|
4
|
+
ChainsRequest,
|
|
5
|
+
ChainsResponse,
|
|
6
|
+
ConnectionsRequest,
|
|
7
|
+
ConnectionsResponse,
|
|
8
|
+
ContractCallQuoteRequest,
|
|
9
|
+
ExtendedChain,
|
|
10
|
+
GasRecommendationRequest,
|
|
11
|
+
GasRecommendationResponse,
|
|
12
|
+
GetStatusRequest,
|
|
13
|
+
LiFiStep,
|
|
14
|
+
QuoteRequest,
|
|
15
|
+
RequestOptions,
|
|
16
|
+
RoutesRequest,
|
|
17
|
+
RoutesResponse,
|
|
18
|
+
StatusResponse,
|
|
19
|
+
Token,
|
|
20
|
+
TokensRequest,
|
|
21
|
+
TokensResponse,
|
|
22
|
+
ToolsRequest,
|
|
23
|
+
ToolsResponse,
|
|
24
|
+
} from '@lifi/types'
|
|
25
|
+
import { config } from '../config.js'
|
|
26
|
+
import { request } from '../request.js'
|
|
27
|
+
import { isRoutesRequest, isStep } from '../typeguards.js'
|
|
28
|
+
import { ValidationError } from '../utils/errors.js'
|
|
29
|
+
import { parseBackendError } from '../utils/parseBackendError.js'
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Fetch information about a Token
|
|
33
|
+
* @param chain - Id or key of the chain that contains the token
|
|
34
|
+
* @param token - Address or symbol of the token on the requested chain
|
|
35
|
+
* @param options - Request options
|
|
36
|
+
* @throws {LiFiError} - Throws a LiFiError if request fails
|
|
37
|
+
* @returns Token information
|
|
38
|
+
*/
|
|
39
|
+
export const getToken = async (
|
|
40
|
+
chain: ChainKey | ChainId,
|
|
41
|
+
token: string,
|
|
42
|
+
options?: RequestOptions
|
|
43
|
+
): Promise<Token> => {
|
|
44
|
+
if (!chain) {
|
|
45
|
+
throw new ValidationError('Required parameter "chain" is missing.')
|
|
46
|
+
}
|
|
47
|
+
if (!token) {
|
|
48
|
+
throw new ValidationError('Required parameter "token" is missing.')
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const response = await request<Token>(
|
|
52
|
+
`${config.get().apiUrl}/token?${new URLSearchParams({
|
|
53
|
+
chain,
|
|
54
|
+
token,
|
|
55
|
+
} as Record<string, string>)}`,
|
|
56
|
+
{
|
|
57
|
+
signal: options?.signal,
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
return response
|
|
61
|
+
} catch (e) {
|
|
62
|
+
throw await parseBackendError(e)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Get a quote for a token transfer
|
|
68
|
+
* @param params - The configuration of the requested quote
|
|
69
|
+
* @param options - Request options
|
|
70
|
+
* @throws {LiFiError} - Throws a LiFiError if request fails
|
|
71
|
+
* @returns Quote for a token transfer
|
|
72
|
+
*/
|
|
73
|
+
export const getQuote = async (
|
|
74
|
+
params: QuoteRequest,
|
|
75
|
+
options?: RequestOptions
|
|
76
|
+
): Promise<LiFiStep> => {
|
|
77
|
+
const requiredParameters: Array<keyof QuoteRequest> = [
|
|
78
|
+
'fromChain',
|
|
79
|
+
'fromToken',
|
|
80
|
+
'fromAddress',
|
|
81
|
+
'fromAmount',
|
|
82
|
+
'toChain',
|
|
83
|
+
'toToken',
|
|
84
|
+
]
|
|
85
|
+
requiredParameters.forEach((requiredParameter) => {
|
|
86
|
+
if (!params[requiredParameter]) {
|
|
87
|
+
throw new ValidationError(
|
|
88
|
+
`Required parameter "${requiredParameter}" is missing.`
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
const _config = config.get()
|
|
93
|
+
// apply defaults
|
|
94
|
+
params.integrator ??= _config.integrator
|
|
95
|
+
params.order ??= _config.routeOptions?.order
|
|
96
|
+
params.slippage ??= _config.routeOptions?.slippage
|
|
97
|
+
params.referrer ??= _config.routeOptions?.referrer
|
|
98
|
+
params.fee ??= _config.routeOptions?.fee
|
|
99
|
+
params.allowBridges ??= _config.routeOptions?.bridges?.allow
|
|
100
|
+
params.denyBridges ??= _config.routeOptions?.bridges?.deny
|
|
101
|
+
params.preferBridges ??= _config.routeOptions?.bridges?.prefer
|
|
102
|
+
params.allowExchanges ??= _config.routeOptions?.exchanges?.allow
|
|
103
|
+
params.denyExchanges ??= _config.routeOptions?.exchanges?.deny
|
|
104
|
+
params.preferExchanges ??= _config.routeOptions?.exchanges?.prefer
|
|
105
|
+
|
|
106
|
+
Object.keys(params).forEach(
|
|
107
|
+
(key) =>
|
|
108
|
+
!params[key as keyof QuoteRequest] &&
|
|
109
|
+
delete params[key as keyof QuoteRequest]
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
const response = await request<LiFiStep>(
|
|
114
|
+
`${_config.apiUrl}/quote?${new URLSearchParams(
|
|
115
|
+
params as unknown as Record<string, string>
|
|
116
|
+
)}`,
|
|
117
|
+
{
|
|
118
|
+
signal: options?.signal,
|
|
119
|
+
}
|
|
120
|
+
)
|
|
121
|
+
return response
|
|
122
|
+
} catch (e) {
|
|
123
|
+
throw await parseBackendError(e)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Get a quote for a destination contract call
|
|
129
|
+
* @param params - The configuration of the requested destination call
|
|
130
|
+
* @param options - Request options
|
|
131
|
+
* @throws {LiFiError} - Throws a LiFiError if request fails
|
|
132
|
+
* @returns - Returns step.
|
|
133
|
+
*/
|
|
134
|
+
export const getContractCallQuote = async (
|
|
135
|
+
params: ContractCallQuoteRequest,
|
|
136
|
+
options?: RequestOptions
|
|
137
|
+
): Promise<LiFiStep> => {
|
|
138
|
+
// validation
|
|
139
|
+
const requiredParameters: Array<keyof ContractCallQuoteRequest> = [
|
|
140
|
+
'fromChain',
|
|
141
|
+
'fromToken',
|
|
142
|
+
'fromAddress',
|
|
143
|
+
'toChain',
|
|
144
|
+
'toToken',
|
|
145
|
+
'toAmount',
|
|
146
|
+
'toContractAddress',
|
|
147
|
+
'toContractCallData',
|
|
148
|
+
'toContractGasLimit',
|
|
149
|
+
]
|
|
150
|
+
requiredParameters.forEach((requiredParameter) => {
|
|
151
|
+
if (!params[requiredParameter]) {
|
|
152
|
+
throw new ValidationError(
|
|
153
|
+
`Required parameter "${requiredParameter}" is missing.`
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
const _config = config.get()
|
|
158
|
+
// apply defaults
|
|
159
|
+
// option.order is not used in this endpoint
|
|
160
|
+
params.integrator ??= _config.integrator
|
|
161
|
+
params.slippage ??= _config.routeOptions?.slippage
|
|
162
|
+
params.referrer ??= _config.routeOptions?.referrer
|
|
163
|
+
params.fee ??= _config.routeOptions?.fee
|
|
164
|
+
params.allowBridges ??= _config.routeOptions?.bridges?.allow
|
|
165
|
+
params.denyBridges ??= _config.routeOptions?.bridges?.deny
|
|
166
|
+
params.preferBridges ??= _config.routeOptions?.bridges?.prefer
|
|
167
|
+
params.allowExchanges ??= _config.routeOptions?.exchanges?.allow
|
|
168
|
+
params.denyExchanges ??= _config.routeOptions?.exchanges?.deny
|
|
169
|
+
params.preferExchanges ??= _config.routeOptions?.exchanges?.prefer
|
|
170
|
+
// send request
|
|
171
|
+
try {
|
|
172
|
+
const response = await request<LiFiStep>(
|
|
173
|
+
`${_config.apiUrl}/quote/contractCall`,
|
|
174
|
+
{
|
|
175
|
+
method: 'POST',
|
|
176
|
+
headers: {
|
|
177
|
+
'Content-Type': 'application/json',
|
|
178
|
+
},
|
|
179
|
+
body: JSON.stringify(params),
|
|
180
|
+
signal: options?.signal,
|
|
181
|
+
}
|
|
182
|
+
)
|
|
183
|
+
return response
|
|
184
|
+
} catch (e) {
|
|
185
|
+
throw await parseBackendError(e)
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Check the status of a transfer. For cross chain transfers, the "bridge" parameter is required.
|
|
191
|
+
* @param params - Configuration of the requested status
|
|
192
|
+
* @param options - Request options.
|
|
193
|
+
* @throws {LiFiError} - Throws a LiFiError if request fails
|
|
194
|
+
* @returns Returns status response.
|
|
195
|
+
*/
|
|
196
|
+
export const getStatus = async (
|
|
197
|
+
params: GetStatusRequest,
|
|
198
|
+
options?: RequestOptions
|
|
199
|
+
): Promise<StatusResponse> => {
|
|
200
|
+
if (!params.txHash) {
|
|
201
|
+
throw new ValidationError('Required parameter "txHash" is missing.')
|
|
202
|
+
}
|
|
203
|
+
const queryParams = new URLSearchParams(
|
|
204
|
+
params as unknown as Record<string, string>
|
|
205
|
+
)
|
|
206
|
+
try {
|
|
207
|
+
const response = await request<StatusResponse>(
|
|
208
|
+
`${config.get().apiUrl}/status?${queryParams}`,
|
|
209
|
+
{
|
|
210
|
+
signal: options?.signal,
|
|
211
|
+
}
|
|
212
|
+
)
|
|
213
|
+
return response
|
|
214
|
+
} catch (e) {
|
|
215
|
+
throw await parseBackendError(e)
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Get all available chains
|
|
221
|
+
* @param params - The configuration of the requested chains
|
|
222
|
+
* @param options - Request options
|
|
223
|
+
* @returns A list of all available chains
|
|
224
|
+
* @throws {LiFiError} Throws a LiFiError if request fails.
|
|
225
|
+
*/
|
|
226
|
+
export const getChains = async (
|
|
227
|
+
params?: ChainsRequest,
|
|
228
|
+
options?: RequestOptions
|
|
229
|
+
): Promise<ExtendedChain[]> => {
|
|
230
|
+
if (params) {
|
|
231
|
+
Object.keys(params).forEach(
|
|
232
|
+
(key) =>
|
|
233
|
+
!params[key as keyof ChainsRequest] &&
|
|
234
|
+
delete params[key as keyof ChainsRequest]
|
|
235
|
+
)
|
|
236
|
+
}
|
|
237
|
+
try {
|
|
238
|
+
const response = await request<ChainsResponse>(
|
|
239
|
+
`${config.get().apiUrl}/chains?${new URLSearchParams(
|
|
240
|
+
params as Record<string, string>
|
|
241
|
+
)}`,
|
|
242
|
+
{
|
|
243
|
+
signal: options?.signal,
|
|
244
|
+
}
|
|
245
|
+
)
|
|
246
|
+
return response.chains
|
|
247
|
+
} catch (e) {
|
|
248
|
+
throw await parseBackendError(e)
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Get a set of routes for a request that describes a transfer of tokens.
|
|
254
|
+
* @param params - A description of the transfer.
|
|
255
|
+
* @param options - Request options
|
|
256
|
+
* @returns The resulting routes that can be used to realize the described transfer of tokens.
|
|
257
|
+
* @throws {LiFiError} Throws a LiFiError if request fails.
|
|
258
|
+
*/
|
|
259
|
+
export const getRoutes = async (
|
|
260
|
+
params: RoutesRequest,
|
|
261
|
+
options?: RequestOptions
|
|
262
|
+
): Promise<RoutesResponse> => {
|
|
263
|
+
if (!isRoutesRequest(params)) {
|
|
264
|
+
throw new ValidationError('Invalid routes request.')
|
|
265
|
+
}
|
|
266
|
+
const _config = config.get()
|
|
267
|
+
// apply defaults
|
|
268
|
+
params.options = {
|
|
269
|
+
..._config.routeOptions,
|
|
270
|
+
...params.options,
|
|
271
|
+
}
|
|
272
|
+
// send request
|
|
273
|
+
try {
|
|
274
|
+
const response = await request<RoutesResponse>(
|
|
275
|
+
`${_config.apiUrl}/advanced/routes`,
|
|
276
|
+
{
|
|
277
|
+
method: 'POST',
|
|
278
|
+
headers: {
|
|
279
|
+
'Content-Type': 'application/json',
|
|
280
|
+
},
|
|
281
|
+
body: JSON.stringify(params),
|
|
282
|
+
signal: options?.signal,
|
|
283
|
+
}
|
|
284
|
+
)
|
|
285
|
+
return response
|
|
286
|
+
} catch (e) {
|
|
287
|
+
throw await parseBackendError(e)
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Get the transaction data for a single step of a route
|
|
293
|
+
* @param step - The step object.
|
|
294
|
+
* @param options - Request options
|
|
295
|
+
* @returns The step populated with the transaction data.
|
|
296
|
+
* @throws {LiFiError} Throws a LiFiError if request fails.
|
|
297
|
+
*/
|
|
298
|
+
export const getStepTransaction = async (
|
|
299
|
+
step: LiFiStep,
|
|
300
|
+
options?: RequestOptions
|
|
301
|
+
): Promise<LiFiStep> => {
|
|
302
|
+
if (!isStep(step)) {
|
|
303
|
+
// While the validation fails for some users we should not enforce it
|
|
304
|
+
// eslint-disable-next-line no-console
|
|
305
|
+
console.warn('SDK Validation: Invalid Step', step)
|
|
306
|
+
}
|
|
307
|
+
try {
|
|
308
|
+
const response = await request<LiFiStep>(
|
|
309
|
+
`${config.get().apiUrl}/advanced/stepTransaction`,
|
|
310
|
+
{
|
|
311
|
+
method: 'POST',
|
|
312
|
+
headers: {
|
|
313
|
+
'Content-Type': 'application/json',
|
|
314
|
+
},
|
|
315
|
+
body: JSON.stringify(step),
|
|
316
|
+
signal: options?.signal,
|
|
317
|
+
}
|
|
318
|
+
)
|
|
319
|
+
return response
|
|
320
|
+
} catch (e) {
|
|
321
|
+
throw await parseBackendError(e)
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Get the available tools to bridge and swap tokens.
|
|
327
|
+
* @param params - The configuration of the requested tools
|
|
328
|
+
* @param options - Request options
|
|
329
|
+
* @returns The tools that are available on the requested chains
|
|
330
|
+
*/
|
|
331
|
+
export const getTools = async (
|
|
332
|
+
params?: ToolsRequest,
|
|
333
|
+
options?: RequestOptions
|
|
334
|
+
): Promise<ToolsResponse> => {
|
|
335
|
+
if (params) {
|
|
336
|
+
Object.keys(params).forEach(
|
|
337
|
+
(key) =>
|
|
338
|
+
!params[key as keyof ToolsRequest] &&
|
|
339
|
+
delete params[key as keyof ToolsRequest]
|
|
340
|
+
)
|
|
341
|
+
}
|
|
342
|
+
try {
|
|
343
|
+
const response = await request<ToolsResponse>(
|
|
344
|
+
`${config.get().apiUrl}/tools?${new URLSearchParams(
|
|
345
|
+
params as Record<string, string>
|
|
346
|
+
)}`,
|
|
347
|
+
{
|
|
348
|
+
signal: options?.signal,
|
|
349
|
+
}
|
|
350
|
+
)
|
|
351
|
+
return response
|
|
352
|
+
} catch (e) {
|
|
353
|
+
throw await parseBackendError(e)
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Get all known tokens.
|
|
359
|
+
* @param params - The configuration of the requested tokens
|
|
360
|
+
* @param options - Request options
|
|
361
|
+
* @returns The tokens that are available on the requested chains
|
|
362
|
+
*/
|
|
363
|
+
export const getTokens = async (
|
|
364
|
+
params?: TokensRequest,
|
|
365
|
+
options?: RequestOptions
|
|
366
|
+
): Promise<TokensResponse> => {
|
|
367
|
+
if (params) {
|
|
368
|
+
Object.keys(params).forEach(
|
|
369
|
+
(key) =>
|
|
370
|
+
!params[key as keyof TokensRequest] &&
|
|
371
|
+
delete params[key as keyof TokensRequest]
|
|
372
|
+
)
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
try {
|
|
376
|
+
const response = await request<TokensResponse>(
|
|
377
|
+
`${config.get().apiUrl}/tokens?${new URLSearchParams(
|
|
378
|
+
params as Record<string, string>
|
|
379
|
+
)}`,
|
|
380
|
+
{
|
|
381
|
+
signal: options?.signal,
|
|
382
|
+
}
|
|
383
|
+
)
|
|
384
|
+
return response
|
|
385
|
+
} catch (e) {
|
|
386
|
+
throw await parseBackendError(e)
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Get gas recommendation for a certain chain
|
|
392
|
+
* @param params - Configuration of the requested gas recommendation.
|
|
393
|
+
* @param options - Request options
|
|
394
|
+
* @throws {LiFiError} Throws a LiFiError if request fails.
|
|
395
|
+
* @returns Gas recommendation response.
|
|
396
|
+
*/
|
|
397
|
+
export const getGasRecommendation = async (
|
|
398
|
+
params: GasRecommendationRequest,
|
|
399
|
+
options?: RequestOptions
|
|
400
|
+
): Promise<GasRecommendationResponse> => {
|
|
401
|
+
if (!params.chainId) {
|
|
402
|
+
throw new ValidationError('Required parameter "chainId" is missing.')
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
const url = new URL(`${config.get().apiUrl}/gas/suggestion/${params.chainId}`)
|
|
406
|
+
if (params.fromChain) {
|
|
407
|
+
url.searchParams.append('fromChain', params.fromChain as unknown as string)
|
|
408
|
+
}
|
|
409
|
+
if (params.fromToken) {
|
|
410
|
+
url.searchParams.append('fromToken', params.fromToken)
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
try {
|
|
414
|
+
const response = await request<GasRecommendationResponse>(url.toString(), {
|
|
415
|
+
signal: options?.signal,
|
|
416
|
+
})
|
|
417
|
+
return response
|
|
418
|
+
} catch (e) {
|
|
419
|
+
throw await parseBackendError(e)
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Get all the available connections for swap/bridging tokens
|
|
425
|
+
* @param connectionRequest ConnectionsRequest
|
|
426
|
+
* @returns ConnectionsResponse
|
|
427
|
+
*/
|
|
428
|
+
export const getConnections = async (
|
|
429
|
+
connectionRequest: ConnectionsRequest
|
|
430
|
+
): Promise<ConnectionsResponse> => {
|
|
431
|
+
const url = new URL(`${config.get().apiUrl}/connections`)
|
|
432
|
+
|
|
433
|
+
const { fromChain, fromToken, toChain, toToken } = connectionRequest
|
|
434
|
+
|
|
435
|
+
if (fromChain) {
|
|
436
|
+
url.searchParams.append('fromChain', fromChain as unknown as string)
|
|
437
|
+
}
|
|
438
|
+
if (fromToken) {
|
|
439
|
+
url.searchParams.append('fromToken', fromToken)
|
|
440
|
+
}
|
|
441
|
+
if (toChain) {
|
|
442
|
+
url.searchParams.append('toChain', toChain as unknown as string)
|
|
443
|
+
}
|
|
444
|
+
if (toToken) {
|
|
445
|
+
url.searchParams.append('toToken', toToken)
|
|
446
|
+
}
|
|
447
|
+
const connectionRequestArrayParams: Array<keyof ConnectionsRequest> = [
|
|
448
|
+
'allowBridges',
|
|
449
|
+
'denyBridges',
|
|
450
|
+
'preferBridges',
|
|
451
|
+
'allowExchanges',
|
|
452
|
+
'denyExchanges',
|
|
453
|
+
'preferExchanges',
|
|
454
|
+
]
|
|
455
|
+
connectionRequestArrayParams.forEach((parameter) => {
|
|
456
|
+
const connectionRequestArrayParam: string[] = connectionRequest[
|
|
457
|
+
parameter
|
|
458
|
+
] as string[]
|
|
459
|
+
|
|
460
|
+
if (connectionRequestArrayParam?.length) {
|
|
461
|
+
connectionRequestArrayParam?.forEach((value) => {
|
|
462
|
+
url.searchParams.append(parameter, value)
|
|
463
|
+
})
|
|
464
|
+
}
|
|
465
|
+
})
|
|
466
|
+
try {
|
|
467
|
+
const response = await request<ConnectionsResponse>(url.toString())
|
|
468
|
+
return response
|
|
469
|
+
} catch (e) {
|
|
470
|
+
throw await parseBackendError(e)
|
|
471
|
+
}
|
|
472
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { Token, TokenAmount } from '@lifi/types'
|
|
2
|
+
import { config } from '../config.js'
|
|
3
|
+
import { isToken } from '../typeguards.js'
|
|
4
|
+
import { ValidationError } from '../utils/errors.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Returns the balances of a specific token a wallet holds across all aggregated chains.
|
|
8
|
+
* @param walletAddress - A wallet address.
|
|
9
|
+
* @param token - A Token object.
|
|
10
|
+
* @returns An object containing the token and the amounts on different chains.
|
|
11
|
+
* @throws {ValidationError} Throws a ValidationError if parameters are invalid.
|
|
12
|
+
*/
|
|
13
|
+
export const getTokenBalance = async (
|
|
14
|
+
walletAddress: string,
|
|
15
|
+
token: Token
|
|
16
|
+
): Promise<TokenAmount | null> => {
|
|
17
|
+
const tokenAmounts = await getTokenBalances(walletAddress, [token])
|
|
18
|
+
return tokenAmounts.length ? tokenAmounts[0] : null
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Returns the balances for a list tokens a wallet holds across all aggregated chains.
|
|
23
|
+
* @param walletAddress - A wallet address.
|
|
24
|
+
* @param tokens - A list of Token objects.
|
|
25
|
+
* @returns A list of objects containing the tokens and the amounts on different chains.
|
|
26
|
+
* @throws {ValidationError} Throws a ValidationError if parameters are invalid.
|
|
27
|
+
*/
|
|
28
|
+
export const getTokenBalances = async (
|
|
29
|
+
walletAddress: string,
|
|
30
|
+
tokens: Token[]
|
|
31
|
+
): Promise<TokenAmount[]> => {
|
|
32
|
+
// split by chain
|
|
33
|
+
const tokensByChain = tokens.reduce(
|
|
34
|
+
(tokens, token) => {
|
|
35
|
+
if (!tokens[token.chainId]) {
|
|
36
|
+
tokens[token.chainId] = []
|
|
37
|
+
}
|
|
38
|
+
tokens[token.chainId].push(token)
|
|
39
|
+
return tokens
|
|
40
|
+
},
|
|
41
|
+
{} as { [chainId: number]: Token[] }
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
const tokenAmountsByChain = await getTokenBalancesByChain(
|
|
45
|
+
walletAddress,
|
|
46
|
+
tokensByChain
|
|
47
|
+
)
|
|
48
|
+
return Object.values(tokenAmountsByChain).flat()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* This method queries the balances of tokens for a specific list of chains for a given wallet.
|
|
53
|
+
* @param walletAddress - A walletaddress.
|
|
54
|
+
* @param tokensByChain - A list of Token objects organized by chain ids.
|
|
55
|
+
* @returns A list of objects containing the tokens and the amounts on different chains organized by the chosen chains.
|
|
56
|
+
* @throws {ValidationError} Throws a ValidationError if parameters are invalid.
|
|
57
|
+
*/
|
|
58
|
+
export const getTokenBalancesByChain = async (
|
|
59
|
+
walletAddress: string,
|
|
60
|
+
tokensByChain: { [chainId: number]: Token[] }
|
|
61
|
+
): Promise<{ [chainId: number]: TokenAmount[] }> => {
|
|
62
|
+
if (!walletAddress) {
|
|
63
|
+
throw new ValidationError('Missing walletAddress.')
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const tokenList = Object.values(tokensByChain).flat()
|
|
67
|
+
const invalidTokens = tokenList.filter((token) => !isToken(token))
|
|
68
|
+
if (invalidTokens.length) {
|
|
69
|
+
throw new ValidationError(
|
|
70
|
+
`Invalid token passed: address "${invalidTokens[0].address}" on chainId "${invalidTokens[0].chainId}"`
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const tokenAmountsByChain: { [chainId: number]: TokenAmount[] } = {}
|
|
75
|
+
await Promise.allSettled(
|
|
76
|
+
Object.keys(tokensByChain).map(async (chainIdStr) => {
|
|
77
|
+
const chainId = parseInt(chainIdStr)
|
|
78
|
+
const baseTokenAddress = tokensByChain[chainId][0].address
|
|
79
|
+
const provider = config
|
|
80
|
+
.get()
|
|
81
|
+
.providers?.find((provider) => provider.isAddress(baseTokenAddress))
|
|
82
|
+
if (!provider) {
|
|
83
|
+
throw new Error('SDK Token Provider not found.')
|
|
84
|
+
}
|
|
85
|
+
const tokenAmounts = await provider.getBalance(
|
|
86
|
+
walletAddress,
|
|
87
|
+
tokensByChain[chainId]
|
|
88
|
+
)
|
|
89
|
+
tokenAmountsByChain[chainId] = tokenAmounts
|
|
90
|
+
})
|
|
91
|
+
)
|
|
92
|
+
return tokenAmountsByChain
|
|
93
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Action,
|
|
3
|
+
Estimate,
|
|
4
|
+
LiFiStep,
|
|
5
|
+
RouteOptions,
|
|
6
|
+
RoutesRequest,
|
|
7
|
+
StaticToken,
|
|
8
|
+
} from '@lifi/types'
|
|
9
|
+
|
|
10
|
+
export const isRoutesRequest = (
|
|
11
|
+
routesRequest: RoutesRequest
|
|
12
|
+
): routesRequest is RoutesRequest => {
|
|
13
|
+
const {
|
|
14
|
+
fromChainId,
|
|
15
|
+
fromAmount,
|
|
16
|
+
fromTokenAddress,
|
|
17
|
+
toChainId,
|
|
18
|
+
toTokenAddress,
|
|
19
|
+
options,
|
|
20
|
+
} = routesRequest
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
typeof fromChainId === 'number' &&
|
|
24
|
+
typeof fromAmount === 'string' &&
|
|
25
|
+
fromAmount !== '' &&
|
|
26
|
+
typeof fromTokenAddress === 'string' &&
|
|
27
|
+
fromTokenAddress !== '' &&
|
|
28
|
+
typeof toChainId === 'number' &&
|
|
29
|
+
typeof toTokenAddress === 'string' &&
|
|
30
|
+
toTokenAddress !== '' &&
|
|
31
|
+
(!options || isRoutesOptions(options))
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const isRoutesOptions = (
|
|
36
|
+
routeOptions: RouteOptions
|
|
37
|
+
): routeOptions is RouteOptions =>
|
|
38
|
+
!routeOptions?.slippage || typeof routeOptions.slippage === 'number'
|
|
39
|
+
|
|
40
|
+
export const isStep = (step: LiFiStep): step is LiFiStep => {
|
|
41
|
+
const { id, type, tool, action, estimate } = step
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
typeof id === 'string' &&
|
|
45
|
+
['swap', 'cross', 'lifi'].includes(type) &&
|
|
46
|
+
typeof tool === 'string' &&
|
|
47
|
+
isAction(action) &&
|
|
48
|
+
isEstimate(estimate)
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const isAction = (action: Action): action is Action => {
|
|
53
|
+
const { fromChainId, fromAmount, fromToken, toChainId, toToken, slippage } =
|
|
54
|
+
action
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
typeof fromChainId === 'number' &&
|
|
58
|
+
typeof fromAmount === 'string' &&
|
|
59
|
+
fromAmount !== '' &&
|
|
60
|
+
isToken(fromToken) &&
|
|
61
|
+
typeof toChainId === 'number' &&
|
|
62
|
+
isToken(toToken) &&
|
|
63
|
+
typeof slippage === 'number'
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const isEstimate = (estimate: Estimate): estimate is Estimate => {
|
|
68
|
+
const { fromAmount, toAmount, toAmountMin, approvalAddress } = estimate
|
|
69
|
+
|
|
70
|
+
return (
|
|
71
|
+
typeof fromAmount === 'string' &&
|
|
72
|
+
fromAmount !== '' &&
|
|
73
|
+
typeof toAmount === 'string' &&
|
|
74
|
+
toAmount !== '' &&
|
|
75
|
+
typeof toAmountMin === 'string' &&
|
|
76
|
+
toAmountMin !== '' &&
|
|
77
|
+
typeof approvalAddress === 'string'
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export const isToken = (token: StaticToken): token is StaticToken => {
|
|
82
|
+
const { address, decimals, chainId } = token
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
typeof address === 'string' &&
|
|
86
|
+
typeof decimals === 'number' &&
|
|
87
|
+
typeof chainId === 'number'
|
|
88
|
+
)
|
|
89
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './internal.js'
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ChainId, RouteOptions } from '@lifi/types'
|
|
2
|
+
import type { SDKProvider } from '../core/types.js'
|
|
3
|
+
|
|
4
|
+
export interface SDKConfig {
|
|
5
|
+
integrator: string
|
|
6
|
+
apiUrl: string
|
|
7
|
+
apiKey?: string
|
|
8
|
+
userId?: string
|
|
9
|
+
disableVersionCheck?: boolean
|
|
10
|
+
widgetVersion?: string
|
|
11
|
+
routeOptions?: RouteOptions
|
|
12
|
+
providers?: SDKProvider[]
|
|
13
|
+
rpcUrls: Partial<Record<ChainId, string[]>>
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface SDKOptions extends Partial<Omit<SDKConfig, 'integrator'>> {
|
|
17
|
+
integrator: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface TenderlyResponse {
|
|
21
|
+
hash: string
|
|
22
|
+
block_hash: string
|
|
23
|
+
block_number: number
|
|
24
|
+
from: string
|
|
25
|
+
gas: number
|
|
26
|
+
gas_price: number
|
|
27
|
+
gas_fee_cap: number
|
|
28
|
+
gas_tip_cap: number
|
|
29
|
+
cumulative_gas_used: number
|
|
30
|
+
gas_used: number
|
|
31
|
+
effective_gas_price: number
|
|
32
|
+
input: string
|
|
33
|
+
nonce: number
|
|
34
|
+
to: string
|
|
35
|
+
index: number
|
|
36
|
+
value: string
|
|
37
|
+
access_list: unknown
|
|
38
|
+
status: boolean
|
|
39
|
+
addresses: string[]
|
|
40
|
+
contract_ids: string[]
|
|
41
|
+
network_id: string
|
|
42
|
+
timestamp: string
|
|
43
|
+
function_selector: string
|
|
44
|
+
l1_block_number: number
|
|
45
|
+
l1_timestamp: number
|
|
46
|
+
deposit_tx: boolean
|
|
47
|
+
system_tx: boolean
|
|
48
|
+
mint: number
|
|
49
|
+
sig: {
|
|
50
|
+
v: string
|
|
51
|
+
r: string
|
|
52
|
+
s: string
|
|
53
|
+
}
|
|
54
|
+
error_message: string
|
|
55
|
+
method: string
|
|
56
|
+
decoded_input: unknown
|
|
57
|
+
call_trace: unknown
|
|
58
|
+
}
|