@lifi/sdk 3.0.0-alpha.9 → 3.0.0-beta.1
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 -98
- 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 -8
- 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/KeypairWalletAdapter.js +88 -0
- package/src/_cjs/core/Solana/KeypairWalletAdapter.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 +200 -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 +168 -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 +138 -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 +34 -0
- package/src/_cjs/createConfig.js.map +1 -0
- package/src/_cjs/helpers.js +50 -0
- package/src/_cjs/helpers.js.map +1 -0
- package/src/_cjs/index.js +30 -0
- package/src/_cjs/index.js.map +1 -0
- package/src/_cjs/package.json +1 -0
- package/{dist/cjs → src/_cjs}/request.js +18 -15
- 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 → src/_cjs}/types/internal.js +1 -0
- package/src/_cjs/types/internal.js.map +1 -0
- package/src/_cjs/utils/base64ToUint8Array.js +14 -0
- package/src/_cjs/utils/base64ToUint8Array.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 +6 -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/KeypairWalletAdapter.js +92 -0
- package/src/_esm/core/Solana/KeypairWalletAdapter.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 +214 -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 +204 -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 +176 -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 +19 -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 +6 -4
- 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 +30 -0
- package/src/_esm/createConfig.js.map +1 -0
- package/{dist → src/_esm}/helpers.js +6 -30
- package/src/_esm/helpers.js.map +1 -0
- package/src/_esm/index.js +17 -0
- package/src/_esm/index.js.map +1 -0
- package/src/_esm/package.json +1 -0
- package/{dist → src/_esm}/request.js +14 -10
- 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/src/_esm/utils/base64ToUint8Array.js +10 -0
- package/src/_esm/utils/base64ToUint8Array.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/execution → src/_types/core/EVM}/switchChain.d.ts +4 -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/KeypairWalletAdapter.d.ts +28 -0
- package/src/_types/core/Solana/KeypairWalletAdapter.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 +11 -0
- package/src/_types/core/Solana/types.d.ts.map +1 -0
- package/{dist/cjs/execution → src/_types/core}/StatusManager.d.ts +14 -28
- package/src/_types/core/StatusManager.d.ts.map +1 -0
- package/{dist/cjs/execution → src/_types/core}/checkBalance.d.ts +1 -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 +5 -3
- 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/{dist/cjs/execution → src/_types/core}/waitForReceivingTransaction.d.ts +2 -1
- 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/cjs → src/_types}/helpers.d.ts +3 -9
- package/src/_types/helpers.d.ts.map +1 -0
- package/src/_types/index.d.ts +18 -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 +1 -0
- 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/{dist → src/_types}/types/internal.d.ts +14 -15
- package/src/_types/types/internal.d.ts.map +1 -0
- package/src/_types/utils/base64ToUint8Array.d.ts +2 -0
- package/src/_types/utils/base64ToUint8Array.d.ts.map +1 -0
- package/{dist/cjs → 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 +2 -4
- 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 +500 -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 +143 -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/KeypairWalletAdapter.ts +100 -0
- package/src/core/Solana/Solana.ts +41 -0
- package/src/core/Solana/SolanaStepExecutor.ts +331 -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 +17 -0
- package/src/core/StatusManager.ts +233 -0
- package/src/core/checkBalance.ts +48 -0
- package/src/core/execution.ts +214 -0
- package/src/core/executionState.ts +44 -0
- package/src/core/index.ts +3 -0
- package/src/core/prepareRestart.ts +26 -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 +108 -0
- package/src/core/waitForReceivingTransaction.ts +74 -0
- package/src/createConfig.ts +35 -0
- package/src/helpers.ts +69 -0
- package/src/index.ts +24 -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/base64ToUint8Array.ts +9 -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 -178
- package/dist/LiFi.js +0 -253
- 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 -178
- package/dist/cjs/LiFi.js +0 -283
- 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 -72
- package/dist/cjs/execution/BaseStepExecutor.d.ts +0 -12
- package/dist/cjs/execution/BaseStepExecutor.js +0 -27
- package/dist/cjs/execution/EVMStepExecutor.d.ts +0 -13
- package/dist/cjs/execution/EVMStepExecutor.js +0 -292
- package/dist/cjs/execution/RouteExecutionManager.d.ts +0 -60
- package/dist/cjs/execution/RouteExecutionManager.js +0 -204
- 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/checkAllowance.d.ts +0 -5
- package/dist/cjs/execution/index.d.ts +0 -2
- package/dist/cjs/execution/index.js +0 -18
- package/dist/cjs/execution/multisig.d.ts +0 -4
- package/dist/cjs/execution/prepareRestart.d.ts +0 -2
- package/dist/cjs/execution/prepareRestart.js +0 -65
- package/dist/cjs/execution/stepComparison.d.ts +0 -15
- package/dist/cjs/execution/stepComparison.js +0 -37
- package/dist/cjs/execution/switchChain.d.ts +0 -22
- package/dist/cjs/execution/switchChain.js +0 -55
- package/dist/cjs/execution/types.d.ts +0 -82
- package/dist/cjs/execution/types.js +0 -2
- package/dist/cjs/execution/utils.d.ts +0 -12
- package/dist/cjs/helpers.js +0 -84
- package/dist/cjs/index.d.ts +0 -9
- package/dist/cjs/index.js +0 -30
- package/dist/cjs/providers/EVM.d.ts +0 -10
- package/dist/cjs/providers/EVM.js +0 -34
- package/dist/cjs/providers/Solana.d.ts +0 -9
- package/dist/cjs/providers/Solana.js +0 -38
- package/dist/cjs/providers/index.d.ts +0 -1
- package/dist/cjs/providers/index.js +0 -17
- package/dist/cjs/providers/types.d.ts +0 -12
- package/dist/cjs/providers/types.js +0 -8
- package/dist/cjs/request.d.ts +0 -9
- package/dist/cjs/services/ApiService.d.ts +0 -16
- package/dist/cjs/services/ApiService.js +0 -323
- package/dist/cjs/services/ChainsService.d.ts +0 -11
- package/dist/cjs/services/ChainsService.js +0 -40
- package/dist/cjs/services/ConfigService.d.ts +0 -26
- package/dist/cjs/services/ConfigService.js +0 -104
- package/dist/cjs/types/index.d.ts +0 -2
- package/dist/cjs/types/index.js +0 -18
- package/dist/cjs/types/internal.d.ts +0 -60
- 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 -154
- 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/BaseStepExecutor.d.ts +0 -12
- package/dist/execution/BaseStepExecutor.js +0 -23
- package/dist/execution/EVMStepExecutor.d.ts +0 -13
- package/dist/execution/EVMStepExecutor.js +0 -285
- package/dist/execution/RouteExecutionManager.d.ts +0 -60
- package/dist/execution/RouteExecutionManager.js +0 -200
- package/dist/execution/StatusManager.d.ts +0 -68
- 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/checkAllowance.d.ts +0 -5
- package/dist/execution/checkBalance.d.ts +0 -2
- package/dist/execution/index.d.ts +0 -2
- package/dist/execution/index.js +0 -2
- package/dist/execution/multisig.d.ts +0 -4
- package/dist/execution/prepareRestart.d.ts +0 -2
- package/dist/execution/prepareRestart.js +0 -61
- package/dist/execution/types.d.ts +0 -82
- package/dist/execution/types.js +0 -1
- package/dist/execution/waitForReceivingTransaction.d.ts +0 -3
- package/dist/helpers.d.ts +0 -18
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -9
- package/dist/providers/EVM.d.ts +0 -10
- package/dist/providers/EVM.js +0 -29
- package/dist/providers/Solana.d.ts +0 -9
- package/dist/providers/Solana.js +0 -33
- package/dist/providers/index.d.ts +0 -1
- package/dist/providers/index.js +0 -1
- package/dist/providers/types.d.ts +0 -12
- package/dist/providers/types.js +0 -5
- package/dist/services/ApiService.d.ts +0 -16
- 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 -26
- package/dist/services/ConfigService.js +0 -100
- package/dist/typeguards.d.ts +0 -4
- package/dist/types/abi.d.ts +0 -5
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.js +0 -2
- package/dist/types/internal.js +0 -1
- package/dist/utils/errors.d.ts +0 -107
- 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
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTokenBalancesByChain = exports.getTokenBalances = exports.getTokenBalance = void 0;
|
|
4
|
-
const getBalance_1 = require("./getBalance");
|
|
5
|
-
const getTokenBalance = async (walletAddress, token) => {
|
|
6
|
-
const tokenAmounts = await (0, exports.getTokenBalances)(walletAddress, [token]);
|
|
7
|
-
return tokenAmounts.length ? tokenAmounts[0] : null;
|
|
8
|
-
};
|
|
9
|
-
exports.getTokenBalance = getTokenBalance;
|
|
10
|
-
const getTokenBalances = async (walletAddress, tokens) => {
|
|
11
|
-
// split by chain
|
|
12
|
-
const tokensByChain = {};
|
|
13
|
-
tokens.forEach((token) => {
|
|
14
|
-
if (!tokensByChain[token.chainId]) {
|
|
15
|
-
tokensByChain[token.chainId] = [];
|
|
16
|
-
}
|
|
17
|
-
tokensByChain[token.chainId].push(token);
|
|
18
|
-
});
|
|
19
|
-
const tokenAmountsByChain = await (0, exports.getTokenBalancesByChain)(walletAddress, tokensByChain);
|
|
20
|
-
return Object.values(tokenAmountsByChain).flat();
|
|
21
|
-
};
|
|
22
|
-
exports.getTokenBalances = getTokenBalances;
|
|
23
|
-
const getTokenBalancesByChain = async (walletAddress, tokensByChain) => {
|
|
24
|
-
const tokenAmountsByChain = {};
|
|
25
|
-
const promises = Object.keys(tokensByChain).map(async (chainIdStr) => {
|
|
26
|
-
const chainId = parseInt(chainIdStr);
|
|
27
|
-
const tokenAmounts = await (0, getBalance_1.getBalance)(walletAddress, tokensByChain[chainId]);
|
|
28
|
-
tokenAmountsByChain[chainId] = tokenAmounts;
|
|
29
|
-
});
|
|
30
|
-
await Promise.allSettled(promises);
|
|
31
|
-
return tokenAmountsByChain;
|
|
32
|
-
};
|
|
33
|
-
exports.getTokenBalancesByChain = getTokenBalancesByChain;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./getBalance"), exports);
|
|
18
|
-
__exportStar(require("./getTokenBalance"), exports);
|
package/dist/cjs/connectors.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ChainId } from '@lifi/types';
|
|
2
|
-
import type { PublicClient } from 'viem';
|
|
3
|
-
import type { Chain } from 'viem/chains';
|
|
4
|
-
export declare const getChainById: (chainId: ChainId) => Chain | undefined;
|
|
5
|
-
export declare const getRpcUrl: (chainId: ChainId) => Promise<string>;
|
|
6
|
-
export declare const getRpcUrls: (chainId: ChainId) => Promise<string[]>;
|
|
7
|
-
export declare const getPublicClient: (chainId: number) => Promise<PublicClient>;
|
|
8
|
-
export declare const getMulticallAddress: (chainId: ChainId) => Promise<string | undefined>;
|
package/dist/cjs/connectors.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.getMulticallAddress = exports.getPublicClient = exports.getRpcUrls = exports.getRpcUrl = exports.getChainById = void 0;
|
|
27
|
-
const viem_1 = require("viem");
|
|
28
|
-
const chains = __importStar(require("viem/chains")); // TODO: optimize using BE chains
|
|
29
|
-
const ConfigService_1 = require("./services/ConfigService");
|
|
30
|
-
const errors_1 = require("./utils/errors");
|
|
31
|
-
// cached providers
|
|
32
|
-
const publicClients = {};
|
|
33
|
-
const getChainById = (chainId) => {
|
|
34
|
-
return Object.values(chains).find((chain) => chain.id === chainId);
|
|
35
|
-
};
|
|
36
|
-
exports.getChainById = getChainById;
|
|
37
|
-
// RPC Urls
|
|
38
|
-
const getRpcUrl = async (chainId) => {
|
|
39
|
-
const rpcUrls = await (0, exports.getRpcUrls)(chainId);
|
|
40
|
-
return rpcUrls[0];
|
|
41
|
-
};
|
|
42
|
-
exports.getRpcUrl = getRpcUrl;
|
|
43
|
-
const getRpcUrls = async (chainId) => {
|
|
44
|
-
const configService = ConfigService_1.ConfigService.getInstance();
|
|
45
|
-
const config = await configService.getConfigAsync();
|
|
46
|
-
return config.rpcs[chainId];
|
|
47
|
-
};
|
|
48
|
-
exports.getRpcUrls = getRpcUrls;
|
|
49
|
-
const getPublicClient = async (chainId) => {
|
|
50
|
-
if (!publicClients[chainId]) {
|
|
51
|
-
const urls = await (0, exports.getRpcUrls)(chainId);
|
|
52
|
-
const fallbackTransports = urls.map((url) => (0, viem_1.http)(url, {
|
|
53
|
-
batch: true,
|
|
54
|
-
}));
|
|
55
|
-
publicClients[chainId] = (0, viem_1.createPublicClient)({
|
|
56
|
-
chain: (0, exports.getChainById)(chainId),
|
|
57
|
-
transport: (0, viem_1.fallback)(fallbackTransports),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
if (!publicClients[chainId]) {
|
|
61
|
-
throw new errors_1.ServerError(`Unable to configure provider for chain ${chainId}`);
|
|
62
|
-
}
|
|
63
|
-
return publicClients[chainId];
|
|
64
|
-
};
|
|
65
|
-
exports.getPublicClient = getPublicClient;
|
|
66
|
-
// Multicall
|
|
67
|
-
const getMulticallAddress = async (chainId) => {
|
|
68
|
-
const configService = ConfigService_1.ConfigService.getInstance();
|
|
69
|
-
const config = await configService.getConfigAsync();
|
|
70
|
-
return config.multicallAddresses[chainId];
|
|
71
|
-
};
|
|
72
|
-
exports.getMulticallAddress = getMulticallAddress;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { LiFiStep } from '@lifi/types';
|
|
2
|
-
import type { StatusManager } from './StatusManager';
|
|
3
|
-
import type { InteractionSettings, InternalExecutionSettings, StepExecutorOptions } from './types';
|
|
4
|
-
export declare abstract class BaseStepExecutor {
|
|
5
|
-
settings: InternalExecutionSettings;
|
|
6
|
-
statusManager: StatusManager;
|
|
7
|
-
allowUserInteraction: boolean;
|
|
8
|
-
allowExecution: boolean;
|
|
9
|
-
constructor(options: StepExecutorOptions);
|
|
10
|
-
setInteraction: (settings?: InteractionSettings) => void;
|
|
11
|
-
abstract executeStep(step: LiFiStep): Promise<LiFiStep>;
|
|
12
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseStepExecutor = void 0;
|
|
4
|
-
// Please be careful when changing the defaults as it may break the behavior (e.g., background execution)
|
|
5
|
-
const defaultInteractionSettings = {
|
|
6
|
-
allowInteraction: true,
|
|
7
|
-
allowUpdates: true,
|
|
8
|
-
allowExecution: true,
|
|
9
|
-
};
|
|
10
|
-
class BaseStepExecutor {
|
|
11
|
-
constructor(options) {
|
|
12
|
-
this.allowUserInteraction = true;
|
|
13
|
-
this.allowExecution = true;
|
|
14
|
-
this.setInteraction = (settings) => {
|
|
15
|
-
const interactionSettings = {
|
|
16
|
-
...defaultInteractionSettings,
|
|
17
|
-
...settings,
|
|
18
|
-
};
|
|
19
|
-
this.allowUserInteraction = interactionSettings.allowInteraction;
|
|
20
|
-
this.statusManager.allowUpdates(interactionSettings.allowUpdates);
|
|
21
|
-
this.allowExecution = interactionSettings.allowExecution;
|
|
22
|
-
};
|
|
23
|
-
this.statusManager = options.statusManager;
|
|
24
|
-
this.settings = options.settings;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.BaseStepExecutor = BaseStepExecutor;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { LiFiStep } from '@lifi/types';
|
|
2
|
-
import type { WalletClient } from 'viem';
|
|
3
|
-
import { BaseStepExecutor } from './BaseStepExecutor';
|
|
4
|
-
import type { StepExecutorOptions } from './types';
|
|
5
|
-
export interface EVMStepExecutorOptions extends StepExecutorOptions {
|
|
6
|
-
walletClient: WalletClient;
|
|
7
|
-
}
|
|
8
|
-
export declare class EVMStepExecutor extends BaseStepExecutor {
|
|
9
|
-
walletClient: WalletClient;
|
|
10
|
-
constructor(options: EVMStepExecutorOptions);
|
|
11
|
-
checkChain: () => never;
|
|
12
|
-
executeStep: (step: LiFiStep) => Promise<LiFiStep>;
|
|
13
|
-
}
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.EVMStepExecutor = void 0;
|
|
7
|
-
const viem_1 = require("viem");
|
|
8
|
-
const ApiService_1 = __importDefault(require("../services/ApiService"));
|
|
9
|
-
const ChainsService_1 = require("../services/ChainsService");
|
|
10
|
-
const ConfigService_1 = require("../services/ConfigService");
|
|
11
|
-
const utils_1 = require("../utils");
|
|
12
|
-
const errors_1 = require("../utils/errors");
|
|
13
|
-
const parseError_1 = require("../utils/parseError");
|
|
14
|
-
const utils_2 = require("../utils/utils");
|
|
15
|
-
const BaseStepExecutor_1 = require("./BaseStepExecutor");
|
|
16
|
-
const checkAllowance_1 = require("./checkAllowance");
|
|
17
|
-
const checkBalance_1 = require("./checkBalance");
|
|
18
|
-
const multisig_1 = require("./multisig");
|
|
19
|
-
const stepComparison_1 = require("./stepComparison");
|
|
20
|
-
const switchChain_1 = require("./switchChain");
|
|
21
|
-
const utils_3 = require("./utils");
|
|
22
|
-
const waitForReceivingTransaction_1 = require("./waitForReceivingTransaction");
|
|
23
|
-
class EVMStepExecutor extends BaseStepExecutor_1.BaseStepExecutor {
|
|
24
|
-
constructor(options) {
|
|
25
|
-
super(options);
|
|
26
|
-
// TODO: add checkChain method and update wallet client inside executors
|
|
27
|
-
// This can come in handy when we execute multiple routes simultaneously and
|
|
28
|
-
// should be sure that we are on the right chain when waiting for transactions.
|
|
29
|
-
this.checkChain = () => {
|
|
30
|
-
throw new Error('checkChain is not implemented.');
|
|
31
|
-
};
|
|
32
|
-
this.executeStep = async (step) => {
|
|
33
|
-
// Make sure that the chain is still correct
|
|
34
|
-
// Find if it's bridging and the step is waiting for a transaction on the receiving chain
|
|
35
|
-
const recievingChainProcess = step.execution?.process.find((process) => process.type === 'RECEIVING_CHAIN');
|
|
36
|
-
// If the step is waiting for a transaction on the receiving chain, we do not switch the chain
|
|
37
|
-
// All changes are already done from the source chain
|
|
38
|
-
// Return the step
|
|
39
|
-
if (recievingChainProcess?.substatus !== 'WAIT_DESTINATION_TRANSACTION' ||
|
|
40
|
-
!recievingChainProcess) {
|
|
41
|
-
const updatedWalletClient = await (0, switchChain_1.switchChain)(this.walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
|
|
42
|
-
if (!updatedWalletClient) {
|
|
43
|
-
// Chain switch was not successful, stop execution here
|
|
44
|
-
return step;
|
|
45
|
-
}
|
|
46
|
-
this.walletClient = updatedWalletClient;
|
|
47
|
-
}
|
|
48
|
-
const client = this.walletClient.extend(viem_1.publicActions);
|
|
49
|
-
const config = ConfigService_1.ConfigService.getInstance().getConfig();
|
|
50
|
-
const isMultisigWalletClient = !!config.multisig?.isMultisigWalletClient;
|
|
51
|
-
const multisigBatchTransactions = [];
|
|
52
|
-
const shouldBatchTransactions = config.multisig?.shouldBatchTransactions &&
|
|
53
|
-
!!config.multisig.sendBatchTransaction;
|
|
54
|
-
step.execution = this.statusManager.initExecutionObject(step);
|
|
55
|
-
const chainsService = ChainsService_1.ChainsService.getInstance();
|
|
56
|
-
const fromChain = await chainsService.getChainById(step.action.fromChainId);
|
|
57
|
-
const toChain = await chainsService.getChainById(step.action.toChainId);
|
|
58
|
-
const isBridgeExecution = fromChain.id !== toChain.id;
|
|
59
|
-
const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
|
|
60
|
-
// STEP 1: Check allowance
|
|
61
|
-
const existingProcess = step.execution.process.find((p) => p.type === currentProcessType);
|
|
62
|
-
// Check token approval only if fromToken is not the native token => no approval needed in that case
|
|
63
|
-
const checkForAllowance = !existingProcess?.txHash &&
|
|
64
|
-
!(0, utils_2.isZeroAddress)(step.action.fromToken.address) &&
|
|
65
|
-
(shouldBatchTransactions || !isMultisigWalletClient);
|
|
66
|
-
if (checkForAllowance) {
|
|
67
|
-
const data = await (0, checkAllowance_1.checkAllowance)(client, step, this.statusManager, this.settings, fromChain, this.allowUserInteraction, shouldBatchTransactions);
|
|
68
|
-
if (data) {
|
|
69
|
-
// allowance doesn't need value
|
|
70
|
-
const baseTransaction = {
|
|
71
|
-
to: step.action.fromToken.address,
|
|
72
|
-
data,
|
|
73
|
-
};
|
|
74
|
-
multisigBatchTransactions.push(baseTransaction);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// STEP 2: Get transaction
|
|
78
|
-
let process = this.statusManager.findOrCreateProcess(step, currentProcessType);
|
|
79
|
-
if (process.status !== 'DONE') {
|
|
80
|
-
const multisigProcess = step.execution.process.find((p) => !!p.multisigTxHash);
|
|
81
|
-
try {
|
|
82
|
-
if (isMultisigWalletClient && multisigProcess) {
|
|
83
|
-
const multisigTxHash = multisigProcess.multisigTxHash;
|
|
84
|
-
if (!multisigTxHash) {
|
|
85
|
-
throw new errors_1.ValidationError('Multisig internal transaction hash is undefined.');
|
|
86
|
-
}
|
|
87
|
-
await (0, multisig_1.updateMultisigRouteProcess)(multisigTxHash, step, this.statusManager, process.type, fromChain);
|
|
88
|
-
}
|
|
89
|
-
let txHash;
|
|
90
|
-
if (process.txHash) {
|
|
91
|
-
// Make sure that the chain is still correct
|
|
92
|
-
const updatedWalletClient = await (0, switchChain_1.switchChain)(this.walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
|
|
93
|
-
if (!updatedWalletClient) {
|
|
94
|
-
// Chain switch was not successful, stop execution here
|
|
95
|
-
return step;
|
|
96
|
-
}
|
|
97
|
-
this.walletClient = updatedWalletClient;
|
|
98
|
-
// Load exiting transaction
|
|
99
|
-
txHash = process.txHash;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
process = this.statusManager.updateProcess(step, process.type, 'STARTED');
|
|
103
|
-
// Check balance
|
|
104
|
-
await (0, checkBalance_1.checkBalance)(client.account.address, step);
|
|
105
|
-
// Create new transaction
|
|
106
|
-
if (!step.transactionRequest) {
|
|
107
|
-
const updatedStep = await ApiService_1.default.getStepTransaction(step);
|
|
108
|
-
const comparedStep = await (0, stepComparison_1.stepComparison)(this.statusManager, step, updatedStep, this.settings, this.allowUserInteraction);
|
|
109
|
-
step = {
|
|
110
|
-
...comparedStep,
|
|
111
|
-
execution: step.execution,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
if (!step.transactionRequest) {
|
|
115
|
-
throw new errors_1.TransactionError(errors_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
116
|
-
}
|
|
117
|
-
// STEP 3: Send the transaction
|
|
118
|
-
// Make sure that the chain is still correct
|
|
119
|
-
const updatedWalletClient = await (0, switchChain_1.switchChain)(this.walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
|
|
120
|
-
if (!updatedWalletClient) {
|
|
121
|
-
// Chain switch was not successful, stop execution here
|
|
122
|
-
return step;
|
|
123
|
-
}
|
|
124
|
-
this.walletClient = updatedWalletClient;
|
|
125
|
-
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
|
|
126
|
-
if (!this.allowUserInteraction) {
|
|
127
|
-
return step;
|
|
128
|
-
}
|
|
129
|
-
let transactionRequest = {
|
|
130
|
-
to: step.transactionRequest.to,
|
|
131
|
-
from: step.transactionRequest.from,
|
|
132
|
-
data: step.transactionRequest.data,
|
|
133
|
-
value: step.transactionRequest.value
|
|
134
|
-
? BigInt(step.transactionRequest.value)
|
|
135
|
-
: undefined,
|
|
136
|
-
gas: step.transactionRequest.gasLimit
|
|
137
|
-
? BigInt(step.transactionRequest.gasLimit)
|
|
138
|
-
: undefined,
|
|
139
|
-
// gasPrice: step.transactionRequest.gasPrice
|
|
140
|
-
// ? BigInt(step.transactionRequest.gasPrice as string)
|
|
141
|
-
// : undefined,
|
|
142
|
-
// maxFeePerGas: step.transactionRequest.maxFeePerGas
|
|
143
|
-
// ? BigInt(step.transactionRequest.maxFeePerGas as string)
|
|
144
|
-
// : undefined,
|
|
145
|
-
maxPriorityFeePerGas: this.walletClient.account?.type === 'local'
|
|
146
|
-
? await (0, utils_1.getMaxPriorityFeePerGas)(client)
|
|
147
|
-
: step.transactionRequest.maxPriorityFeePerGas
|
|
148
|
-
? BigInt(step.transactionRequest.maxPriorityFeePerGas)
|
|
149
|
-
: undefined,
|
|
150
|
-
};
|
|
151
|
-
if (this.settings.updateTransactionRequestHook) {
|
|
152
|
-
const customizedTransactionRequest = await this.settings.updateTransactionRequestHook({
|
|
153
|
-
requestType: 'transaction',
|
|
154
|
-
...transactionRequest,
|
|
155
|
-
});
|
|
156
|
-
transactionRequest = {
|
|
157
|
-
...transactionRequest,
|
|
158
|
-
...customizedTransactionRequest,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
if (shouldBatchTransactions &&
|
|
162
|
-
config.multisig?.sendBatchTransaction) {
|
|
163
|
-
if (transactionRequest.to && transactionRequest.data) {
|
|
164
|
-
const populatedTransaction = {
|
|
165
|
-
value: transactionRequest.value,
|
|
166
|
-
to: transactionRequest.to,
|
|
167
|
-
data: transactionRequest.data,
|
|
168
|
-
};
|
|
169
|
-
multisigBatchTransactions.push(populatedTransaction);
|
|
170
|
-
txHash = await config.multisig?.sendBatchTransaction(multisigBatchTransactions);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
throw new errors_1.TransactionError(errors_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
txHash = await this.walletClient.sendTransaction({
|
|
178
|
-
to: transactionRequest.to,
|
|
179
|
-
account: this.walletClient.account,
|
|
180
|
-
data: transactionRequest.data,
|
|
181
|
-
gas: transactionRequest.gas,
|
|
182
|
-
gasPrice: transactionRequest.gasPrice,
|
|
183
|
-
maxFeePerGas: transactionRequest.maxFeePerGas,
|
|
184
|
-
maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
|
|
185
|
-
chain: null,
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
// STEP 4: Wait for the transaction
|
|
189
|
-
if (isMultisigWalletClient) {
|
|
190
|
-
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED', {
|
|
191
|
-
multisigTxHash: txHash,
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
196
|
-
txHash: txHash,
|
|
197
|
-
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
let replacementReason;
|
|
202
|
-
const transactionReceipt = await client.waitForTransactionReceipt({
|
|
203
|
-
hash: txHash,
|
|
204
|
-
onReplaced: (response) => {
|
|
205
|
-
replacementReason = response.reason;
|
|
206
|
-
this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
207
|
-
txHash: response.transaction.hash,
|
|
208
|
-
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
|
|
209
|
-
});
|
|
210
|
-
},
|
|
211
|
-
});
|
|
212
|
-
if (replacementReason === 'cancelled') {
|
|
213
|
-
throw new errors_1.TransactionError(errors_1.LiFiErrorCode.TransactionCanceled, 'User canceled transaction.');
|
|
214
|
-
}
|
|
215
|
-
// if it's multisig wallet client and the process is in ACTION_REQUIRED
|
|
216
|
-
// then signatures are still needed
|
|
217
|
-
if (isMultisigWalletClient && process.status === 'ACTION_REQUIRED') {
|
|
218
|
-
await (0, multisig_1.updateMultisigRouteProcess)(transactionReceipt.transactionHash, step, this.statusManager, process.type, fromChain);
|
|
219
|
-
}
|
|
220
|
-
if (!isMultisigWalletClient) {
|
|
221
|
-
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
222
|
-
txHash: transactionReceipt.transactionHash,
|
|
223
|
-
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${transactionReceipt.transactionHash}`,
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
if (isBridgeExecution) {
|
|
227
|
-
process = this.statusManager.updateProcess(step, process.type, 'DONE');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
catch (e) {
|
|
231
|
-
const error = await (0, parseError_1.parseError)(e, step, process);
|
|
232
|
-
process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
|
|
233
|
-
error: {
|
|
234
|
-
message: error.message,
|
|
235
|
-
htmlMessage: error.htmlMessage,
|
|
236
|
-
code: error.code,
|
|
237
|
-
},
|
|
238
|
-
});
|
|
239
|
-
this.statusManager.updateExecution(step, 'FAILED');
|
|
240
|
-
throw error;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
// STEP 5: Wait for the receiving chain
|
|
244
|
-
const processTxHash = process.txHash;
|
|
245
|
-
if (isBridgeExecution) {
|
|
246
|
-
process = this.statusManager.findOrCreateProcess(step, 'RECEIVING_CHAIN', 'PENDING');
|
|
247
|
-
}
|
|
248
|
-
let statusResponse;
|
|
249
|
-
try {
|
|
250
|
-
if (!processTxHash) {
|
|
251
|
-
throw new Error('Transaction hash is undefined.');
|
|
252
|
-
}
|
|
253
|
-
statusResponse = (await (0, waitForReceivingTransaction_1.waitForReceivingTransaction)(processTxHash, this.statusManager, process.type, step));
|
|
254
|
-
const statusReceiving = statusResponse.receiving;
|
|
255
|
-
process = this.statusManager.updateProcess(step, process.type, 'DONE', {
|
|
256
|
-
substatus: statusResponse.substatus,
|
|
257
|
-
substatusMessage: statusResponse.substatusMessage ||
|
|
258
|
-
(0, utils_3.getSubstatusMessage)(statusResponse.status, statusResponse.substatus),
|
|
259
|
-
txHash: statusReceiving?.txHash,
|
|
260
|
-
txLink: `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
|
|
261
|
-
});
|
|
262
|
-
this.statusManager.updateExecution(step, 'DONE', {
|
|
263
|
-
fromAmount: statusResponse.sending.amount,
|
|
264
|
-
toAmount: statusReceiving?.amount,
|
|
265
|
-
toToken: statusReceiving?.token,
|
|
266
|
-
gasAmount: statusResponse.sending.gasAmount,
|
|
267
|
-
gasAmountUSD: statusResponse.sending.gasAmountUSD,
|
|
268
|
-
gasPrice: statusResponse.sending.gasPrice,
|
|
269
|
-
gasToken: statusResponse.sending.gasToken,
|
|
270
|
-
gasUsed: statusResponse.sending.gasUsed,
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
catch (e) {
|
|
274
|
-
const htmlMessage = await (0, parseError_1.getTransactionFailedMessage)(step, process.txLink);
|
|
275
|
-
process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
|
|
276
|
-
error: {
|
|
277
|
-
code: errors_1.LiFiErrorCode.TransactionFailed,
|
|
278
|
-
message: 'Failed while waiting for receiving chain.',
|
|
279
|
-
htmlMessage,
|
|
280
|
-
},
|
|
281
|
-
});
|
|
282
|
-
this.statusManager.updateExecution(step, 'FAILED');
|
|
283
|
-
console.warn(e);
|
|
284
|
-
throw e;
|
|
285
|
-
}
|
|
286
|
-
// DONE
|
|
287
|
-
return step;
|
|
288
|
-
};
|
|
289
|
-
this.walletClient = options.walletClient;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
exports.EVMStepExecutor = EVMStepExecutor;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import type { Route } from '@lifi/types';
|
|
2
|
-
import type { ProviderType, SDKProvider } from '../providers';
|
|
3
|
-
import { ConfigService } from '../services/ConfigService';
|
|
4
|
-
import type { SDKOptions } from '../types';
|
|
5
|
-
import type { ExecutionSettings } from './types';
|
|
6
|
-
export declare class RouteExecutionManager {
|
|
7
|
-
private executionDictionary;
|
|
8
|
-
private executionPromiseDictionary;
|
|
9
|
-
protected configService: ConfigService;
|
|
10
|
-
private providers?;
|
|
11
|
-
constructor(options: SDKOptions);
|
|
12
|
-
/**
|
|
13
|
-
* Execute a route.
|
|
14
|
-
* @param route - The route that should be executed. Cannot be an active route.
|
|
15
|
-
* @param settings - An object containing settings and callbacks.
|
|
16
|
-
* @returns The executed route.
|
|
17
|
-
* @throws {LiFiError} Throws a LiFiError if the execution fails.
|
|
18
|
-
*/
|
|
19
|
-
executeRoute: (route: Route, settings?: ExecutionSettings) => Promise<Route>;
|
|
20
|
-
/**
|
|
21
|
-
* Resume the execution of a route that has been stopped or had an error while executing.
|
|
22
|
-
* @param route - The route that is to be executed. Cannot be an active route.
|
|
23
|
-
* @param settings - An object containing settings and callbacks.
|
|
24
|
-
* @returns The executed route.
|
|
25
|
-
* @throws {LiFiError} Throws a LiFiError if the execution fails.
|
|
26
|
-
*/
|
|
27
|
-
resumeRoute: (route: Route, settings?: ExecutionSettings) => Promise<Route>;
|
|
28
|
-
private executeSteps;
|
|
29
|
-
/**
|
|
30
|
-
* Updates route execution to background or foreground state.
|
|
31
|
-
* @param route - A route that is currently in execution.
|
|
32
|
-
* @param settings - An object with execution settings.
|
|
33
|
-
*/
|
|
34
|
-
updateRouteExecution: (route: Route, settings: Pick<ExecutionSettings, 'executeInBackground'>) => void;
|
|
35
|
-
/**
|
|
36
|
-
* Update the ExecutionSettings for an active route.
|
|
37
|
-
* @param settings - An object with execution settings.
|
|
38
|
-
* @param route - The active route that gets the new execution settings.
|
|
39
|
-
* @throws {ValidationError} Throws a ValidationError if parameters are invalid.
|
|
40
|
-
*/
|
|
41
|
-
updateExecutionSettings: (settings: ExecutionSettings, route: Route) => void;
|
|
42
|
-
/**
|
|
43
|
-
* Stops the execution of an active route.
|
|
44
|
-
* @param route - A route that is currently in execution.
|
|
45
|
-
* @returns The stopped route.
|
|
46
|
-
*/
|
|
47
|
-
stopExecution: (route: Route) => Route;
|
|
48
|
-
/**
|
|
49
|
-
* Get the list of active routes.
|
|
50
|
-
* @returns A list of routes.
|
|
51
|
-
*/
|
|
52
|
-
getActiveRoutes: () => Route[];
|
|
53
|
-
/**
|
|
54
|
-
* Return the current route information for given route. The route has to be active.
|
|
55
|
-
* @param route - A route object.
|
|
56
|
-
* @returns The updated route.
|
|
57
|
-
*/
|
|
58
|
-
getActiveRoute: (route: Route) => Route | undefined;
|
|
59
|
-
getProvider: (type: ProviderType) => SDKProvider | undefined;
|
|
60
|
-
}
|