@lifi/sdk 3.0.0-alpha.6 → 3.0.0-alpha.60
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/package.json +40 -88
- package/src/_cjs/config.js +90 -0
- package/src/_cjs/config.js.map +1 -0
- package/{dist/cjs → src/_cjs}/constants.js +3 -5
- package/src/_cjs/constants.js.map +1 -0
- package/src/_cjs/core/BaseStepExecutor.js +55 -0
- package/src/_cjs/core/BaseStepExecutor.js.map +1 -0
- package/src/_cjs/core/EVM/EVM.js +43 -0
- package/src/_cjs/core/EVM/EVM.js.map +1 -0
- package/src/_cjs/core/EVM/EVMStepExecutor.js +304 -0
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -0
- package/{dist/cjs/types → src/_cjs/core/EVM}/abi.js +1 -0
- package/src/_cjs/core/EVM/abi.js.map +1 -0
- package/{dist/cjs/execution → src/_cjs/core/EVM}/checkAllowance.js +19 -12
- package/src/_cjs/core/EVM/checkAllowance.js.map +1 -0
- package/{dist/cjs/allowance → src/_cjs/core/EVM}/getAllowance.js +13 -17
- package/src/_cjs/core/EVM/getAllowance.js.map +1 -0
- package/src/_cjs/core/EVM/getENSAddress.js +20 -0
- package/src/_cjs/core/EVM/getENSAddress.js.map +1 -0
- package/{dist/cjs/balance/getBalance.js → src/_cjs/core/EVM/getEVMBalance.js} +20 -22
- package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -0
- package/{dist/cjs/execution → src/_cjs/core/EVM}/multisig.js +7 -11
- package/src/_cjs/core/EVM/multisig.js.map +1 -0
- package/src/_cjs/core/EVM/publicClient.js +43 -0
- package/src/_cjs/core/EVM/publicClient.js.map +1 -0
- package/{dist/cjs/allowance → src/_cjs/core/EVM}/setAllowance.js +11 -12
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -0
- package/src/_cjs/core/EVM/switchChain.js +38 -0
- package/src/_cjs/core/EVM/switchChain.js.map +1 -0
- package/src/_cjs/core/EVM/types.js +9 -0
- package/src/_cjs/core/EVM/types.js.map +1 -0
- package/{dist/cjs/utils/getMaxPriorityFeePerGas.js → src/_cjs/core/EVM/utils.js} +13 -3
- package/src/_cjs/core/EVM/utils.js.map +1 -0
- package/src/_cjs/core/Solana/Solana.js +38 -0
- package/src/_cjs/core/Solana/Solana.js.map +1 -0
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +174 -0
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
- package/src/_cjs/core/Solana/connection.js +19 -0
- package/src/_cjs/core/Solana/connection.js.map +1 -0
- package/src/_cjs/core/Solana/getSNSAddress.js +26 -0
- package/src/_cjs/core/Solana/getSNSAddress.js.map +1 -0
- package/src/_cjs/core/Solana/getSolanaBalance.js +60 -0
- package/src/_cjs/core/Solana/getSolanaBalance.js.map +1 -0
- package/src/_cjs/core/Solana/isAddress.js +15 -0
- package/src/_cjs/core/Solana/isAddress.js.map +1 -0
- package/src/_cjs/core/Solana/types.js +10 -0
- package/src/_cjs/core/Solana/types.js.map +1 -0
- package/src/_cjs/core/StatusManager.js +167 -0
- package/src/_cjs/core/StatusManager.js.map +1 -0
- package/{dist/cjs/execution → src/_cjs/core}/checkBalance.js +6 -6
- package/src/_cjs/core/checkBalance.js.map +1 -0
- package/src/_cjs/core/execution.js +134 -0
- package/src/_cjs/core/execution.js.map +1 -0
- package/src/_cjs/core/executionState.js +29 -0
- package/src/_cjs/core/executionState.js.map +1 -0
- package/src/_cjs/core/index.js +7 -0
- package/src/_cjs/core/index.js.map +1 -0
- package/src/_cjs/core/prepareRestart.js +23 -0
- package/src/_cjs/core/prepareRestart.js.map +1 -0
- package/src/_cjs/core/provider.js +15 -0
- package/src/_cjs/core/provider.js.map +1 -0
- package/src/_cjs/core/rpc.js +18 -0
- package/src/_cjs/core/rpc.js.map +1 -0
- package/src/_cjs/core/stepComparison.js +25 -0
- package/src/_cjs/core/stepComparison.js.map +1 -0
- package/{dist/cjs/allowance → src/_cjs/core}/types.js +1 -0
- package/src/_cjs/core/types.js.map +1 -0
- package/{dist/cjs/execution → src/_cjs/core}/utils.js +2 -11
- package/src/_cjs/core/utils.js.map +1 -0
- package/{dist/cjs/execution → src/_cjs/core}/waitForReceivingTransaction.js +13 -14
- package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -0
- package/src/_cjs/createConfig.js +32 -0
- package/src/_cjs/createConfig.js.map +1 -0
- package/src/_cjs/helpers.js +57 -0
- package/src/_cjs/helpers.js.map +1 -0
- package/src/_cjs/index.js +23 -0
- package/src/_cjs/index.js.map +1 -0
- package/src/_cjs/package.json +1 -0
- package/src/_cjs/request.js +66 -0
- package/src/_cjs/request.js.map +1 -0
- package/src/_cjs/services/api.js +309 -0
- package/src/_cjs/services/api.js.map +1 -0
- package/src/_cjs/services/balance.js +49 -0
- package/src/_cjs/services/balance.js.map +1 -0
- package/src/_cjs/services/getNameServiceAddress.js +29 -0
- package/src/_cjs/services/getNameServiceAddress.js.map +1 -0
- package/{dist/cjs → src/_cjs}/typeguards.js +1 -0
- package/src/_cjs/typeguards.js.map +1 -0
- package/src/_cjs/types/index.js +5 -0
- package/src/_cjs/types/index.js.map +1 -0
- package/{dist/cjs/types/internal.types.js → src/_cjs/types/internal.js} +1 -0
- package/src/_cjs/types/internal.js.map +1 -0
- package/{dist/cjs → src/_cjs}/utils/errors.js +26 -3
- package/src/_cjs/utils/errors.js.map +1 -0
- package/src/_cjs/utils/getTransactionMessage.js +31 -0
- package/src/_cjs/utils/getTransactionMessage.js.map +1 -0
- package/src/_cjs/utils/index.js +9 -0
- package/src/_cjs/utils/index.js.map +1 -0
- package/{dist/cjs → src/_cjs}/utils/median.js +1 -0
- package/src/_cjs/utils/median.js.map +1 -0
- package/src/_cjs/utils/parseBackendError.js +27 -0
- package/src/_cjs/utils/parseBackendError.js.map +1 -0
- package/src/_cjs/utils/parseError.js +69 -0
- package/src/_cjs/utils/parseError.js.map +1 -0
- package/{dist/cjs → src/_cjs}/utils/utils.js +5 -11
- package/src/_cjs/utils/utils.js.map +1 -0
- package/{dist/cjs → src/_cjs}/version.js +2 -1
- package/src/_cjs/version.js.map +1 -0
- package/src/_esm/config.js +87 -0
- package/src/_esm/config.js.map +1 -0
- package/{dist → src/_esm}/constants.js +2 -4
- package/src/_esm/constants.js.map +1 -0
- package/src/_esm/core/BaseStepExecutor.js +52 -0
- package/src/_esm/core/BaseStepExecutor.js.map +1 -0
- package/src/_esm/core/EVM/EVM.js +39 -0
- package/src/_esm/core/EVM/EVM.js.map +1 -0
- package/src/_esm/core/EVM/EVMStepExecutor.js +329 -0
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -0
- package/{dist/types → src/_esm/core/EVM}/abi.js +1 -0
- package/src/_esm/core/EVM/abi.js.map +1 -0
- package/{dist/execution → src/_esm/core/EVM}/checkAllowance.js +14 -5
- package/src/_esm/core/EVM/checkAllowance.js.map +1 -0
- package/{dist/allowance → src/_esm/core/EVM}/getAllowance.js +19 -6
- package/src/_esm/core/EVM/getAllowance.js.map +1 -0
- package/src/_esm/core/EVM/getENSAddress.js +17 -0
- package/src/_esm/core/EVM/getENSAddress.js.map +1 -0
- package/{dist/balance/getBalance.js → src/_esm/core/EVM/getEVMBalance.js} +10 -12
- package/src/_esm/core/EVM/getEVMBalance.js.map +1 -0
- package/{dist/execution → src/_esm/core/EVM}/multisig.js +5 -6
- package/src/_esm/core/EVM/multisig.js.map +1 -0
- package/src/_esm/core/EVM/publicClient.js +46 -0
- package/src/_esm/core/EVM/publicClient.js.map +1 -0
- package/{dist/allowance → src/_esm/core/EVM}/setAllowance.js +23 -4
- package/src/_esm/core/EVM/setAllowance.js.map +1 -0
- package/{dist/execution → src/_esm/core/EVM}/switchChain.js +7 -4
- package/src/_esm/core/EVM/switchChain.js.map +1 -0
- package/src/_esm/core/EVM/types.js +6 -0
- package/src/_esm/core/EVM/types.js.map +1 -0
- package/{dist/utils/getMaxPriorityFeePerGas.js → src/_esm/core/EVM/utils.js} +12 -1
- package/src/_esm/core/EVM/utils.js.map +1 -0
- package/src/_esm/core/Solana/Solana.js +34 -0
- package/src/_esm/core/Solana/Solana.js.map +1 -0
- package/src/_esm/core/Solana/SolanaStepExecutor.js +176 -0
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -0
- package/src/_esm/core/Solana/connection.js +20 -0
- package/src/_esm/core/Solana/connection.js.map +1 -0
- package/src/_esm/core/Solana/getSNSAddress.js +26 -0
- package/src/_esm/core/Solana/getSNSAddress.js.map +1 -0
- package/src/_esm/core/Solana/getSolanaBalance.js +56 -0
- package/src/_esm/core/Solana/getSolanaBalance.js.map +1 -0
- package/src/_esm/core/Solana/isAddress.js +11 -0
- package/src/_esm/core/Solana/isAddress.js.map +1 -0
- package/src/_esm/core/Solana/types.js +7 -0
- package/src/_esm/core/Solana/types.js.map +1 -0
- package/src/_esm/core/StatusManager.js +203 -0
- package/src/_esm/core/StatusManager.js.map +1 -0
- package/{dist/execution → src/_esm/core}/checkBalance.js +4 -3
- package/src/_esm/core/checkBalance.js.map +1 -0
- package/src/_esm/core/execution.js +172 -0
- package/src/_esm/core/execution.js.map +1 -0
- package/src/_esm/core/executionState.js +26 -0
- package/src/_esm/core/executionState.js.map +1 -0
- package/src/_esm/core/index.js +4 -0
- package/src/_esm/core/index.js.map +1 -0
- package/src/_esm/core/prepareRestart.js +64 -0
- package/src/_esm/core/prepareRestart.js.map +1 -0
- package/src/_esm/core/provider.js +11 -0
- package/src/_esm/core/provider.js.map +1 -0
- package/src/_esm/core/rpc.js +14 -0
- package/src/_esm/core/rpc.js.map +1 -0
- package/{dist/execution → src/_esm/core}/stepComparison.js +7 -5
- package/src/_esm/core/stepComparison.js.map +1 -0
- package/src/_esm/core/types.js +2 -0
- package/src/_esm/core/types.js.map +1 -0
- package/{dist/execution → src/_esm/core}/utils.js +4 -3
- package/src/_esm/core/utils.js.map +1 -0
- package/{dist/execution → src/_esm/core}/waitForReceivingTransaction.js +11 -9
- package/src/_esm/core/waitForReceivingTransaction.js.map +1 -0
- package/src/_esm/createConfig.js +28 -0
- package/src/_esm/createConfig.js.map +1 -0
- package/{dist → src/_esm}/helpers.js +5 -17
- package/src/_esm/helpers.js.map +1 -0
- package/src/_esm/index.js +14 -0
- package/src/_esm/index.js.map +1 -0
- package/src/_esm/package.json +1 -0
- package/{dist → src/_esm}/request.js +23 -13
- package/src/_esm/request.js.map +1 -0
- package/src/_esm/services/api.js +378 -0
- package/src/_esm/services/api.js.map +1 -0
- package/src/_esm/services/balance.js +65 -0
- package/src/_esm/services/balance.js.map +1 -0
- package/src/_esm/services/getNameServiceAddress.js +25 -0
- package/src/_esm/services/getNameServiceAddress.js.map +1 -0
- package/{dist → src/_esm}/typeguards.js +1 -0
- package/src/_esm/typeguards.js.map +1 -0
- package/src/_esm/types/index.js +2 -0
- package/src/_esm/types/index.js.map +1 -0
- package/src/_esm/types/internal.js +2 -0
- package/src/_esm/types/internal.js.map +1 -0
- package/{dist → src/_esm}/utils/errors.js +26 -0
- package/src/_esm/utils/errors.js.map +1 -0
- package/src/_esm/utils/getTransactionMessage.js +28 -0
- package/src/_esm/utils/getTransactionMessage.js.map +1 -0
- package/src/_esm/utils/index.js +6 -0
- package/src/_esm/utils/index.js.map +1 -0
- package/{dist → src/_esm}/utils/median.js +1 -0
- package/src/_esm/utils/median.js.map +1 -0
- package/src/_esm/utils/parseBackendError.js +24 -0
- package/src/_esm/utils/parseBackendError.js.map +1 -0
- package/{dist → src/_esm}/utils/parseError.js +6 -53
- package/src/_esm/utils/parseError.js.map +1 -0
- package/{dist → src/_esm}/utils/utils.js +2 -1
- package/src/_esm/utils/utils.js.map +1 -0
- package/src/_esm/version.js +3 -0
- package/src/_esm/version.js.map +1 -0
- package/src/_types/config.d.ts +15 -0
- package/src/_types/config.d.ts.map +1 -0
- package/{dist/cjs → src/_types}/constants.d.ts +2 -4
- package/src/_types/constants.d.ts.map +1 -0
- package/src/_types/core/BaseStepExecutor.d.ts +13 -0
- package/src/_types/core/BaseStepExecutor.d.ts.map +1 -0
- package/src/_types/core/EVM/EVM.d.ts +3 -0
- package/src/_types/core/EVM/EVM.d.ts.map +1 -0
- package/src/_types/core/EVM/EVMStepExecutor.d.ts +17 -0
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
- package/{dist/cjs/types → src/_types/core/EVM}/abi.d.ts +1 -0
- package/src/_types/core/EVM/abi.d.ts.map +1 -0
- package/src/_types/core/EVM/checkAllowance.d.ts +6 -0
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -0
- package/{dist/cjs/allowance → src/_types/core/EVM}/getAllowance.d.ts +15 -1
- package/src/_types/core/EVM/getAllowance.d.ts.map +1 -0
- package/src/_types/core/EVM/getENSAddress.d.ts +2 -0
- package/src/_types/core/EVM/getENSAddress.d.ts.map +1 -0
- package/src/_types/core/EVM/getEVMBalance.d.ts +3 -0
- package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -0
- package/src/_types/core/EVM/multisig.d.ts +6 -0
- package/src/_types/core/EVM/multisig.d.ts.map +1 -0
- package/src/_types/core/EVM/publicClient.d.ts +8 -0
- package/src/_types/core/EVM/publicClient.d.ts.map +1 -0
- package/src/_types/core/EVM/setAllowance.d.ts +25 -0
- package/src/_types/core/EVM/setAllowance.d.ts.map +1 -0
- package/{dist/cjs/execution → src/_types/core/EVM}/switchChain.d.ts +5 -4
- package/src/_types/core/EVM/switchChain.d.ts.map +1 -0
- package/src/_types/core/EVM/types.d.ts +55 -0
- package/src/_types/core/EVM/types.d.ts.map +1 -0
- package/src/_types/core/EVM/utils.d.ts +10 -0
- package/src/_types/core/EVM/utils.d.ts.map +1 -0
- package/src/_types/core/Solana/Solana.d.ts +3 -0
- package/src/_types/core/Solana/Solana.d.ts.map +1 -0
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts +13 -0
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
- package/src/_types/core/Solana/connection.d.ts +8 -0
- package/src/_types/core/Solana/connection.d.ts.map +1 -0
- package/src/_types/core/Solana/getSNSAddress.d.ts +2 -0
- package/src/_types/core/Solana/getSNSAddress.d.ts.map +1 -0
- package/src/_types/core/Solana/getSolanaBalance.d.ts +3 -0
- package/src/_types/core/Solana/getSolanaBalance.d.ts.map +1 -0
- package/src/_types/core/Solana/isAddress.d.ts +2 -0
- package/src/_types/core/Solana/isAddress.d.ts.map +1 -0
- package/src/_types/core/Solana/types.d.ts +13 -0
- package/src/_types/core/Solana/types.d.ts.map +1 -0
- package/{dist/cjs/execution → src/_types/core}/StatusManager.d.ts +15 -28
- package/src/_types/core/StatusManager.d.ts.map +1 -0
- package/src/_types/core/checkBalance.d.ts +3 -0
- package/src/_types/core/checkBalance.d.ts.map +1 -0
- package/src/_types/core/execution.d.ts +42 -0
- package/src/_types/core/execution.d.ts.map +1 -0
- package/src/_types/core/executionState.d.ts +17 -0
- package/src/_types/core/executionState.d.ts.map +1 -0
- package/src/_types/core/index.d.ts +4 -0
- package/src/_types/core/index.d.ts.map +1 -0
- package/src/_types/core/prepareRestart.d.ts +3 -0
- package/src/_types/core/prepareRestart.d.ts.map +1 -0
- package/src/_types/core/provider.d.ts +3 -0
- package/src/_types/core/provider.d.ts.map +1 -0
- package/src/_types/core/rpc.d.ts +4 -0
- package/src/_types/core/rpc.d.ts.map +1 -0
- package/{dist/execution → src/_types/core}/stepComparison.d.ts +7 -4
- package/src/_types/core/stepComparison.d.ts.map +1 -0
- package/src/_types/core/types.d.ts +81 -0
- package/src/_types/core/types.d.ts.map +1 -0
- package/{dist/execution → src/_types/core}/utils.d.ts +3 -2
- package/src/_types/core/utils.d.ts.map +1 -0
- package/src/_types/core/waitForReceivingTransaction.d.ts +4 -0
- package/src/_types/core/waitForReceivingTransaction.d.ts.map +1 -0
- package/src/_types/createConfig.d.ts +4 -0
- package/src/_types/createConfig.d.ts.map +1 -0
- package/{dist → src/_types}/helpers.d.ts +4 -3
- package/src/_types/helpers.d.ts.map +1 -0
- package/src/_types/index.d.ts +15 -0
- package/src/_types/index.d.ts.map +1 -0
- package/{dist → src/_types}/request.d.ts +1 -0
- package/src/_types/request.d.ts.map +1 -0
- package/src/_types/services/api.d.ts +89 -0
- package/src/_types/services/api.d.ts.map +1 -0
- package/src/_types/services/balance.d.ts +30 -0
- package/src/_types/services/balance.d.ts.map +1 -0
- package/src/_types/services/getNameServiceAddress.d.ts +3 -0
- package/src/_types/services/getNameServiceAddress.d.ts.map +1 -0
- package/{dist/cjs → src/_types}/typeguards.d.ts +3 -2
- package/src/_types/typeguards.d.ts.map +1 -0
- package/src/_types/types/index.d.ts +2 -0
- package/src/_types/types/index.d.ts.map +1 -0
- package/src/_types/types/internal.d.ts +59 -0
- package/src/_types/types/internal.d.ts.map +1 -0
- package/{dist → src/_types}/utils/errors.d.ts +3 -1
- package/src/_types/utils/errors.d.ts.map +1 -0
- package/src/_types/utils/getTransactionMessage.d.ts +4 -0
- package/src/_types/utils/getTransactionMessage.d.ts.map +1 -0
- package/src/_types/utils/index.d.ts +6 -0
- package/src/_types/utils/index.d.ts.map +1 -0
- package/{dist/cjs → src/_types}/utils/median.d.ts +1 -0
- package/src/_types/utils/median.d.ts.map +1 -0
- package/src/_types/utils/parseBackendError.d.ts +3 -0
- package/src/_types/utils/parseBackendError.d.ts.map +1 -0
- package/{dist → src/_types}/utils/parseError.d.ts +4 -6
- package/src/_types/utils/parseError.d.ts.map +1 -0
- package/{dist → src/_types}/utils/utils.d.ts +1 -0
- package/src/_types/utils/utils.d.ts.map +1 -0
- package/src/_types/version.d.ts +3 -0
- package/src/_types/version.d.ts.map +1 -0
- package/src/config.ts +91 -0
- package/src/constants.ts +4 -0
- package/src/core/BaseStepExecutor.ts +40 -0
- package/src/core/EVM/EVM.ts +47 -0
- package/src/core/EVM/EVMStepExecutor.ts +503 -0
- package/src/core/EVM/abi.ts +47 -0
- package/src/core/EVM/checkAllowance.ts +168 -0
- package/src/core/EVM/getAllowance.ts +144 -0
- package/src/core/EVM/getENSAddress.ts +18 -0
- package/src/core/EVM/getEVMBalance.ts +118 -0
- package/src/core/EVM/multisig.ts +53 -0
- package/src/core/EVM/publicClient.ts +54 -0
- package/src/core/EVM/setAllowance.ts +144 -0
- package/src/core/EVM/switchChain.ts +77 -0
- package/src/core/EVM/types.ts +73 -0
- package/src/core/EVM/utils.ts +48 -0
- package/src/core/Solana/Solana.ts +41 -0
- package/src/core/Solana/SolanaStepExecutor.ts +272 -0
- package/src/core/Solana/connection.ts +20 -0
- package/src/core/Solana/getSNSAddress.ts +33 -0
- package/src/core/Solana/getSolanaBalance.ts +72 -0
- package/src/core/Solana/isAddress.ts +10 -0
- package/src/core/Solana/types.ts +18 -0
- package/src/core/StatusManager.ts +231 -0
- package/src/core/checkBalance.ts +48 -0
- package/src/core/execution.ts +210 -0
- package/src/core/executionState.ts +44 -0
- package/src/core/index.ts +3 -0
- package/src/core/prepareRestart.ts +82 -0
- package/src/core/provider.ts +12 -0
- package/src/core/rpc.ts +15 -0
- package/src/core/stepComparison.ts +51 -0
- package/src/core/types.ts +118 -0
- package/src/core/utils.ts +105 -0
- package/src/core/waitForReceivingTransaction.ts +74 -0
- package/src/createConfig.ts +33 -0
- package/src/helpers.ts +83 -0
- package/src/index.ts +18 -0
- package/src/request.ts +79 -0
- package/src/services/api.ts +509 -0
- package/src/services/balance.ts +93 -0
- package/src/services/getNameServiceAddress.ts +30 -0
- package/src/typeguards.ts +89 -0
- package/src/types/index.ts +1 -0
- package/src/types/internal.ts +62 -0
- package/src/utils/errors.ts +232 -0
- package/src/utils/getTransactionMessage.ts +46 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/median.ts +11 -0
- package/src/utils/parseBackendError.ts +50 -0
- package/src/utils/parseError.ts +210 -0
- package/src/utils/utils.ts +48 -0
- package/src/version.ts +2 -0
- package/dist/LiFi.d.ts +0 -175
- package/dist/LiFi.js +0 -250
- 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 -6
- 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 -175
- package/dist/cjs/LiFi.js +0 -280
- 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 -6
- 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 -272
- 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.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/helpers.js +0 -84
- 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/request.js +0 -60
- 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 -145
- 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 -265
- 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/switchChain.d.ts +0 -21
- 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 -145
- 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,118 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ChainType,
|
|
3
|
+
Execution,
|
|
4
|
+
LiFiStep,
|
|
5
|
+
Route,
|
|
6
|
+
Step,
|
|
7
|
+
Token,
|
|
8
|
+
TokenAmount,
|
|
9
|
+
} from '@lifi/types'
|
|
10
|
+
import type { WalletClient } from 'viem'
|
|
11
|
+
|
|
12
|
+
export interface SDKProvider {
|
|
13
|
+
readonly type: ChainType
|
|
14
|
+
isAddress(address: string): boolean
|
|
15
|
+
resolveAddress(name: string): Promise<string | undefined>
|
|
16
|
+
getStepExecutor(options: StepExecutorOptions): Promise<StepExecutor>
|
|
17
|
+
getBalance(walletAddress: string, tokens: Token[]): Promise<TokenAmount[]>
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface StepExecutorOptions {
|
|
21
|
+
routeId: string
|
|
22
|
+
executionOptions?: ExecutionOptions
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface InteractionSettings {
|
|
26
|
+
allowInteraction?: boolean
|
|
27
|
+
allowUpdates?: boolean
|
|
28
|
+
allowExecution?: boolean
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface StepExecutor {
|
|
32
|
+
allowUserInteraction: boolean
|
|
33
|
+
allowExecution: boolean
|
|
34
|
+
setInteraction(settings?: InteractionSettings): void
|
|
35
|
+
executeStep(step: LiFiStepExtended): Promise<LiFiStepExtended>
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface RouteExtended extends Omit<Route, 'steps'> {
|
|
39
|
+
steps: LiFiStepExtended[]
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface LiFiStepExtended extends LiFiStep {
|
|
43
|
+
execution?: Execution
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export type StepExtended = Step & {
|
|
47
|
+
execution?: Execution
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type TransactionParameters = {
|
|
51
|
+
chainId?: number
|
|
52
|
+
to?: string
|
|
53
|
+
from?: string
|
|
54
|
+
nonce?: number
|
|
55
|
+
data?: string
|
|
56
|
+
value?: bigint
|
|
57
|
+
gas?: bigint
|
|
58
|
+
gasPrice?: bigint
|
|
59
|
+
maxFeePerGas?: bigint
|
|
60
|
+
maxPriorityFeePerGas?: bigint
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface RouteExecutionData {
|
|
64
|
+
route: Route
|
|
65
|
+
executors: StepExecutor[]
|
|
66
|
+
executionOptions?: ExecutionOptions
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export type RouteExecutionDataDictionary = Partial<
|
|
70
|
+
Record<string, RouteExecutionData>
|
|
71
|
+
>
|
|
72
|
+
|
|
73
|
+
export type RouteExecutionDictionary = Partial<Record<string, Promise<Route>>>
|
|
74
|
+
|
|
75
|
+
export type UpdateRouteHook = (updatedRoute: Route) => void
|
|
76
|
+
|
|
77
|
+
export interface TransactionRequestParameters extends TransactionParameters {
|
|
78
|
+
requestType: 'approve' | 'transaction'
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export type TransactionRequestUpdateHook = (
|
|
82
|
+
updatedTxRequest: TransactionRequestParameters
|
|
83
|
+
) => Promise<TransactionParameters>
|
|
84
|
+
|
|
85
|
+
export type SwitchChainHook = (
|
|
86
|
+
chainId: number
|
|
87
|
+
) => Promise<WalletClient | undefined>
|
|
88
|
+
|
|
89
|
+
export interface AcceptSlippageUpdateHookParams {
|
|
90
|
+
toToken: Token
|
|
91
|
+
oldToAmount: string
|
|
92
|
+
newToAmount: string
|
|
93
|
+
oldSlippage: number
|
|
94
|
+
newSlippage: number
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type AcceptSlippageUpdateHook = (
|
|
98
|
+
params: AcceptSlippageUpdateHookParams
|
|
99
|
+
) => Promise<boolean | undefined>
|
|
100
|
+
|
|
101
|
+
export interface ExchangeRateUpdateParams {
|
|
102
|
+
toToken: Token
|
|
103
|
+
oldToAmount: string
|
|
104
|
+
newToAmount: string
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export type AcceptExchangeRateUpdateHook = (
|
|
108
|
+
params: ExchangeRateUpdateParams
|
|
109
|
+
) => Promise<boolean | undefined>
|
|
110
|
+
|
|
111
|
+
export interface ExecutionOptions {
|
|
112
|
+
acceptExchangeRateUpdateHook?: AcceptExchangeRateUpdateHook
|
|
113
|
+
switchChainHook?: SwitchChainHook
|
|
114
|
+
updateRouteHook?: UpdateRouteHook
|
|
115
|
+
updateTransactionRequestHook?: TransactionRequestUpdateHook
|
|
116
|
+
executeInBackground?: boolean
|
|
117
|
+
infiniteApproval?: boolean
|
|
118
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type LiFiStep,
|
|
3
|
+
type ProcessType,
|
|
4
|
+
type Status,
|
|
5
|
+
type StatusMessage,
|
|
6
|
+
type Substatus,
|
|
7
|
+
} from '@lifi/types'
|
|
8
|
+
|
|
9
|
+
const processMessages: Record<ProcessType, Partial<Record<Status, string>>> = {
|
|
10
|
+
TOKEN_ALLOWANCE: {
|
|
11
|
+
STARTED: 'Setting token allowance.',
|
|
12
|
+
PENDING: 'Waiting for token allowance.',
|
|
13
|
+
DONE: 'Token allowance set.',
|
|
14
|
+
},
|
|
15
|
+
SWITCH_CHAIN: {
|
|
16
|
+
PENDING: 'Chain switch required.',
|
|
17
|
+
DONE: 'Chain switched successfully.',
|
|
18
|
+
},
|
|
19
|
+
SWAP: {
|
|
20
|
+
STARTED: 'Preparing swap transaction.',
|
|
21
|
+
ACTION_REQUIRED: 'Please sign the transaction.',
|
|
22
|
+
PENDING: 'Waiting for swap transaction.',
|
|
23
|
+
DONE: 'Swap completed.',
|
|
24
|
+
},
|
|
25
|
+
CROSS_CHAIN: {
|
|
26
|
+
STARTED: 'Preparing bridge transaction.',
|
|
27
|
+
ACTION_REQUIRED: 'Please sign the transaction.',
|
|
28
|
+
PENDING: 'Waiting for bridge transaction.',
|
|
29
|
+
DONE: 'Bridge transaction confirmed.',
|
|
30
|
+
},
|
|
31
|
+
RECEIVING_CHAIN: {
|
|
32
|
+
PENDING: 'Waiting for destination chain.',
|
|
33
|
+
DONE: 'Bridge completed.',
|
|
34
|
+
},
|
|
35
|
+
TRANSACTION: {},
|
|
36
|
+
}
|
|
37
|
+
const substatusMessages: Record<
|
|
38
|
+
StatusMessage,
|
|
39
|
+
Partial<Record<Substatus, string>>
|
|
40
|
+
> = {
|
|
41
|
+
PENDING: {
|
|
42
|
+
BRIDGE_NOT_AVAILABLE: 'Bridge communication is temporarily unavailable.',
|
|
43
|
+
CHAIN_NOT_AVAILABLE: 'RPC communication is temporarily unavailable.',
|
|
44
|
+
UNKNOWN_ERROR:
|
|
45
|
+
'An unexpected error occurred. Please seek assistance in the LI.FI discord server.',
|
|
46
|
+
WAIT_SOURCE_CONFIRMATIONS:
|
|
47
|
+
'The bridge deposit has been received. The bridge is waiting for more confirmations to start the off-chain logic.',
|
|
48
|
+
WAIT_DESTINATION_TRANSACTION:
|
|
49
|
+
'The bridge off-chain logic is being executed. Wait for the transaction to appear on the destination chain.',
|
|
50
|
+
},
|
|
51
|
+
DONE: {
|
|
52
|
+
PARTIAL:
|
|
53
|
+
'Some of the received tokens are not the requested destination tokens.',
|
|
54
|
+
REFUNDED: 'The tokens were refunded to the sender address.',
|
|
55
|
+
COMPLETED: 'The transfer is complete.',
|
|
56
|
+
},
|
|
57
|
+
FAILED: {},
|
|
58
|
+
INVALID: {},
|
|
59
|
+
NOT_FOUND: {},
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function getProcessMessage(
|
|
63
|
+
type: ProcessType,
|
|
64
|
+
status: Status
|
|
65
|
+
): string | undefined {
|
|
66
|
+
const processMessage = processMessages[type][status]
|
|
67
|
+
return processMessage
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function getSubstatusMessage(
|
|
71
|
+
status: StatusMessage,
|
|
72
|
+
substatus?: Substatus
|
|
73
|
+
): string | undefined {
|
|
74
|
+
if (!substatus) {
|
|
75
|
+
return
|
|
76
|
+
}
|
|
77
|
+
const message = substatusMessages[status][substatus]
|
|
78
|
+
return message
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Used to check if changed exchange rate is in the range of slippage threshold.
|
|
83
|
+
* We use a slippage value as a threshold to trigger the rate change hook.
|
|
84
|
+
* This can result in almost doubled slippage for the user and need to be revisited.
|
|
85
|
+
* @param oldStep
|
|
86
|
+
* @param newStep
|
|
87
|
+
* @returns Boolean
|
|
88
|
+
*/
|
|
89
|
+
export function checkStepSlippageThreshold(
|
|
90
|
+
oldStep: LiFiStep,
|
|
91
|
+
newStep: LiFiStep
|
|
92
|
+
): boolean {
|
|
93
|
+
const setSlippage = oldStep.action.slippage
|
|
94
|
+
const oldEstimatedToAmount = BigInt(oldStep.estimate.toAmountMin)
|
|
95
|
+
const newEstimatedToAmount = BigInt(newStep.estimate.toAmountMin)
|
|
96
|
+
const amountDifference = oldEstimatedToAmount - newEstimatedToAmount
|
|
97
|
+
// oldEstimatedToAmount can be 0 when we use contract calls
|
|
98
|
+
let actualSlippage = 0
|
|
99
|
+
if (oldEstimatedToAmount > 0) {
|
|
100
|
+
actualSlippage =
|
|
101
|
+
Number((amountDifference * 1_000_000_000n) / oldEstimatedToAmount) /
|
|
102
|
+
1_000_000_000
|
|
103
|
+
}
|
|
104
|
+
return actualSlippage <= setSlippage
|
|
105
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
fromChain: step.action.fromChainId,
|
|
27
|
+
toChain: step.action.toChainId,
|
|
28
|
+
txHash,
|
|
29
|
+
...(step.tool !== 'custom' && { bridge: step.tool }),
|
|
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 'INVALID':
|
|
54
|
+
case 'FAILED':
|
|
55
|
+
default:
|
|
56
|
+
return reject()
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
let status
|
|
61
|
+
|
|
62
|
+
if (txHash in TRANSACTION_HASH_OBSERVERS) {
|
|
63
|
+
status = await TRANSACTION_HASH_OBSERVERS[txHash]
|
|
64
|
+
} else {
|
|
65
|
+
TRANSACTION_HASH_OBSERVERS[txHash] = repeatUntilDone(_getStatus, 5_000)
|
|
66
|
+
status = await TRANSACTION_HASH_OBSERVERS[txHash]
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (!('receiving' in status)) {
|
|
70
|
+
throw new ServerError("Status doesn't contain receiving information.")
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return status
|
|
74
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
+
import { ChainType } from '@lifi/types'
|
|
3
|
+
import { config } from './config.js'
|
|
4
|
+
import { checkPackageUpdates } from './helpers.js'
|
|
5
|
+
import { getChains } from './services/api.js'
|
|
6
|
+
import type { SDKConfig } from './types/index.js'
|
|
7
|
+
import { name, version } from './version.js'
|
|
8
|
+
|
|
9
|
+
function createBaseConfig(options: SDKConfig) {
|
|
10
|
+
if (!options.integrator) {
|
|
11
|
+
throw new Error(
|
|
12
|
+
'Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'
|
|
13
|
+
)
|
|
14
|
+
}
|
|
15
|
+
const _config = config.set(options)
|
|
16
|
+
checkPackageUpdates(name, version, options.disableVersionCheck)
|
|
17
|
+
return _config
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export async function createChainsConfig() {
|
|
21
|
+
config.loading = getChains({ chainTypes: [ChainType.EVM, ChainType.SVM] })
|
|
22
|
+
.then((chains) => config.setChains(chains))
|
|
23
|
+
.catch()
|
|
24
|
+
await config.loading
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function createConfig(options: SDKConfig) {
|
|
28
|
+
const _config = createBaseConfig(options)
|
|
29
|
+
if (_config.preloadChains) {
|
|
30
|
+
createChainsConfig()
|
|
31
|
+
}
|
|
32
|
+
return _config
|
|
33
|
+
}
|
package/src/helpers.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
export const checkPackageUpdates = async (
|
|
18
|
+
packageName?: string,
|
|
19
|
+
packageVersion?: string,
|
|
20
|
+
disableCheck?: boolean
|
|
21
|
+
) => {
|
|
22
|
+
if (disableCheck || process.env.NODE_ENV !== 'development') {
|
|
23
|
+
return
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const pkgName = packageName ?? name
|
|
27
|
+
const response = await request<{ version: string }>(
|
|
28
|
+
`https://registry.npmjs.org/${pkgName}/latest`,
|
|
29
|
+
{ skipTrackingHeaders: true }
|
|
30
|
+
)
|
|
31
|
+
const latestVersion = response.version
|
|
32
|
+
const currentVersion = packageVersion ?? version
|
|
33
|
+
if (latestVersion > currentVersion) {
|
|
34
|
+
console.warn(
|
|
35
|
+
// eslint-disable-next-line max-len
|
|
36
|
+
`${pkgName}: new package version is available. Please update as soon as possible to enjoy the newest features. Current version: ${currentVersion}. Latest version: ${latestVersion}.`
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
} catch (error) {
|
|
40
|
+
// Cannot verify version, might be network error etc. We don't bother showing anything in that case
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Converts a quote to Route
|
|
46
|
+
* @param step - Step returned from the quote endpoint.
|
|
47
|
+
* @returns - The route to be executed.
|
|
48
|
+
* @throws {ValidationError} Throws a ValidationError if the step has missing values.
|
|
49
|
+
*/
|
|
50
|
+
export const convertQuoteToRoute = (step: LiFiStep): Route => {
|
|
51
|
+
if (!step.estimate.fromAmountUSD) {
|
|
52
|
+
throw new ValidationError("Missing 'fromAmountUSD' in step estimate.")
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (!step.estimate.toAmountUSD) {
|
|
56
|
+
throw new ValidationError("Missing 'toAmountUSD' in step estimate.")
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const route: Route = {
|
|
60
|
+
fromToken: step.action.fromToken,
|
|
61
|
+
toToken: step.action.toToken,
|
|
62
|
+
fromAmount: step.action.fromAmount,
|
|
63
|
+
toAmount: step.estimate.toAmount,
|
|
64
|
+
id: step.id,
|
|
65
|
+
fromChainId: step.action.fromToken.chainId,
|
|
66
|
+
toChainId: step.action.toToken.chainId,
|
|
67
|
+
fromAmountUSD: step.estimate.fromAmountUSD,
|
|
68
|
+
toAmountUSD: step.estimate.toAmountUSD,
|
|
69
|
+
steps: [step],
|
|
70
|
+
toAmountMin: step.estimate.toAmountMin,
|
|
71
|
+
insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return route
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export const fetchTxErrorDetails = async (txHash: string, chainId: number) => {
|
|
78
|
+
const response = await request<TenderlyResponse>(
|
|
79
|
+
`https://api.tenderly.co/api/v1/public-contract/${chainId}/tx/${txHash}`
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
return response
|
|
83
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from '@lifi/types'
|
|
2
|
+
export { config } from './config.js'
|
|
3
|
+
export { EVM } from './core/EVM/EVM.js'
|
|
4
|
+
export type {
|
|
5
|
+
MultisigConfig,
|
|
6
|
+
MultisigTransaction,
|
|
7
|
+
MultisigTxDetails,
|
|
8
|
+
} from './core/EVM/types.js'
|
|
9
|
+
export { Solana } from './core/Solana/Solana.js'
|
|
10
|
+
export * from './core/index.js'
|
|
11
|
+
export { createConfig } from './createConfig.js'
|
|
12
|
+
export * from './helpers.js'
|
|
13
|
+
export * from './services/api.js'
|
|
14
|
+
export * from './services/balance.js'
|
|
15
|
+
export * from './services/getNameServiceAddress.js'
|
|
16
|
+
export * from './types/index.js'
|
|
17
|
+
export * from './utils/errors.js'
|
|
18
|
+
export { LiFiError, type ErrorCode } from './utils/errors.js'
|
package/src/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
|
+
}
|