@lifi/sdk 3.2.0-alpha.1 → 3.3.0-alpha.0
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 +12 -4
- package/src/_cjs/core/EVM/EVMStepExecutor.js +3 -2
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/getAllowance.js +5 -5
- package/src/_cjs/core/EVM/getAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/getEVMBalance.js +5 -5
- package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -1
- package/src/_cjs/core/EVM/setAllowance.js +5 -5
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
- package/src/_cjs/core/Solana/Solana.js +2 -2
- package/src/_cjs/core/Solana/Solana.js.map +1 -1
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +7 -10
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_cjs/core/Solana/getSNSAddress.js +2 -2
- package/src/_cjs/core/Solana/getSNSAddress.js.map +1 -1
- package/src/_cjs/core/Solana/{isAddress.js → isSVMAddress.js} +3 -3
- package/src/_cjs/core/Solana/isSVMAddress.js.map +1 -0
- package/src/_cjs/core/UTXO/UTXO.js +38 -0
- package/src/_cjs/core/UTXO/UTXO.js.map +1 -0
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js +219 -0
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -0
- package/src/_cjs/core/UTXO/blockchairApi.js +169 -0
- package/src/_cjs/core/UTXO/blockchairApi.js.map +1 -0
- package/src/_cjs/core/UTXO/blockchairApiTypes.js +26 -0
- package/src/_cjs/core/UTXO/blockchairApiTypes.js.map +1 -0
- package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js +48 -0
- package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js.map +1 -0
- package/src/_cjs/core/UTXO/getUTXOBalance.js +30 -0
- package/src/_cjs/core/UTXO/getUTXOBalance.js.map +1 -0
- package/src/_cjs/core/UTXO/getUTXOPublicClient.js +36 -0
- package/src/_cjs/core/UTXO/getUTXOPublicClient.js.map +1 -0
- package/src/_cjs/core/UTXO/isUTXOAddress.js +133 -0
- package/src/_cjs/core/UTXO/isUTXOAddress.js.map +1 -0
- package/src/_cjs/core/UTXO/parseUTXOErrors.js +30 -0
- package/src/_cjs/core/UTXO/parseUTXOErrors.js.map +1 -0
- package/src/_cjs/core/UTXO/requestClient.js +63 -0
- package/src/_cjs/core/UTXO/requestClient.js.map +1 -0
- package/src/_cjs/core/UTXO/types.js +8 -0
- package/src/_cjs/core/UTXO/types.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBalance.js +11 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBalance.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockCount.js +11 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockCount.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/getUTXOTransaction.js +15 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/getUTXOTransaction.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js +15 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/signPsbt.js +11 -0
- package/src/_cjs/core/UTXO/utxo-stack/actions/signPsbt.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/clients/types.js +3 -0
- package/src/_cjs/core/UTXO/utxo-stack/clients/types.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js +10 -0
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOActions.js +14 -0
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOActions.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/ankr.js +21 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/ankr.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockchair.js +24 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockchair.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockcypher.js +21 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockcypher.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js +77 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js +22 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/mempool.js +17 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/mempool.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/types.js +3 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/types.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/utxo.js +56 -0
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/utxo.js.map +1 -0
- package/src/_cjs/core/UTXO/utxo-stack/types/transaction.js +3 -0
- package/src/_cjs/core/UTXO/utxo-stack/types/transaction.js.map +1 -0
- package/src/_cjs/core/checkBalance.js +3 -3
- package/src/_cjs/core/checkBalance.js.map +1 -1
- package/src/_cjs/core/utils.js +0 -6
- package/src/_cjs/core/utils.js.map +1 -1
- package/src/_cjs/core/waitForReceivingTransaction.js +4 -4
- package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -1
- package/src/_cjs/createConfig.js +3 -1
- package/src/_cjs/createConfig.js.map +1 -1
- package/src/_cjs/index.js +10 -3
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/request.js +3 -3
- package/src/_cjs/request.js.map +1 -1
- package/src/_cjs/services/api.js +15 -7
- package/src/_cjs/services/api.js.map +1 -1
- package/src/_cjs/services/balance.js +7 -3
- package/src/_cjs/services/balance.js.map +1 -1
- package/src/_cjs/utils/index.js +1 -1
- package/src/_cjs/utils/index.js.map +1 -1
- package/src/_cjs/utils/{utils.js → isZeroAddress.js} +2 -19
- package/src/_cjs/utils/isZeroAddress.js.map +1 -0
- package/src/_cjs/utils/sleep.js +9 -0
- package/src/_cjs/utils/sleep.js.map +1 -0
- package/src/_cjs/utils/waitForResult.js +16 -0
- package/src/_cjs/utils/waitForResult.js.map +1 -0
- package/src/_cjs/utils/withDedupe.js +37 -0
- package/src/_cjs/utils/withDedupe.js.map +1 -0
- package/src/_cjs/version.js +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +3 -2
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/getAllowance.js +1 -1
- package/src/_esm/core/EVM/getAllowance.js.map +1 -1
- package/src/_esm/core/EVM/getEVMBalance.js +1 -1
- package/src/_esm/core/EVM/getEVMBalance.js.map +1 -1
- package/src/_esm/core/EVM/setAllowance.js +1 -1
- package/src/_esm/core/EVM/setAllowance.js.map +1 -1
- package/src/_esm/core/Solana/Solana.js +2 -2
- package/src/_esm/core/Solana/Solana.js.map +1 -1
- package/src/_esm/core/Solana/SolanaStepExecutor.js +6 -9
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_esm/core/Solana/getSNSAddress.js +2 -2
- package/src/_esm/core/Solana/getSNSAddress.js.map +1 -1
- package/src/_esm/core/Solana/{isAddress.js → isSVMAddress.js} +2 -2
- package/src/_esm/core/Solana/isSVMAddress.js.map +1 -0
- package/src/_esm/core/UTXO/UTXO.js +36 -0
- package/src/_esm/core/UTXO/UTXO.js.map +1 -0
- package/src/_esm/core/UTXO/UTXOStepExecutor.js +243 -0
- package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -0
- package/src/_esm/core/UTXO/blockchairApi.js +167 -0
- package/src/_esm/core/UTXO/blockchairApi.js.map +1 -0
- package/src/_esm/core/UTXO/blockchairApiTypes.js +23 -0
- package/src/_esm/core/UTXO/blockchairApiTypes.js.map +1 -0
- package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js +50 -0
- package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js.map +1 -0
- package/src/_esm/core/UTXO/getUTXOBalance.js +26 -0
- package/src/_esm/core/UTXO/getUTXOBalance.js.map +1 -0
- package/src/_esm/core/UTXO/getUTXOPublicClient.js +38 -0
- package/src/_esm/core/UTXO/getUTXOPublicClient.js.map +1 -0
- package/src/_esm/core/UTXO/isUTXOAddress.js +128 -0
- package/src/_esm/core/UTXO/isUTXOAddress.js.map +1 -0
- package/src/_esm/core/UTXO/parseUTXOErrors.js +26 -0
- package/src/_esm/core/UTXO/parseUTXOErrors.js.map +1 -0
- package/src/_esm/core/UTXO/requestClient.js +59 -0
- package/src/_esm/core/UTXO/requestClient.js.map +1 -0
- package/src/_esm/core/UTXO/types.js +6 -0
- package/src/_esm/core/UTXO/types.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/getBalance.js +9 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/getBalance.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlockCount.js +9 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlockCount.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/getUTXOTransaction.js +13 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/getUTXOTransaction.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js +13 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/signPsbt.js +9 -0
- package/src/_esm/core/UTXO/utxo-stack/actions/signPsbt.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/clients/types.js +2 -0
- package/src/_esm/core/UTXO/utxo-stack/clients/types.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js +7 -0
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOActions.js +11 -0
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOActions.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/ankr.js +18 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/ankr.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockchair.js +21 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockchair.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockcypher.js +18 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockcypher.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js +74 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js +19 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/mempool.js +14 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/mempool.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/types.js +2 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/types.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/utxo.js +53 -0
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/utxo.js.map +1 -0
- package/src/_esm/core/UTXO/utxo-stack/types/transaction.js +2 -0
- package/src/_esm/core/UTXO/utxo-stack/types/transaction.js.map +1 -0
- package/src/_esm/core/checkBalance.js +2 -2
- package/src/_esm/core/checkBalance.js.map +1 -1
- package/src/_esm/core/utils.js +0 -5
- package/src/_esm/core/utils.js.map +1 -1
- package/src/_esm/core/waitForReceivingTransaction.js +4 -4
- package/src/_esm/core/waitForReceivingTransaction.js.map +1 -1
- package/src/_esm/createConfig.js +3 -1
- package/src/_esm/createConfig.js.map +1 -1
- package/src/_esm/index.js +7 -3
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/request.js +3 -3
- package/src/_esm/request.js.map +1 -1
- package/src/_esm/services/api.js +15 -7
- package/src/_esm/services/api.js.map +1 -1
- package/src/_esm/services/balance.js +9 -5
- package/src/_esm/services/balance.js.map +1 -1
- package/src/_esm/utils/index.js +1 -1
- package/src/_esm/utils/index.js.map +1 -1
- package/src/_esm/utils/isZeroAddress.js +17 -0
- package/src/_esm/utils/isZeroAddress.js.map +1 -0
- package/src/_esm/utils/sleep.js +6 -0
- package/src/_esm/utils/sleep.js.map +1 -0
- package/src/_esm/utils/waitForResult.js +18 -0
- package/src/_esm/utils/waitForResult.js.map +1 -0
- package/src/_esm/utils/withDedupe.js +40 -0
- package/src/_esm/utils/withDedupe.js.map +1 -0
- package/src/_esm/version.js +1 -1
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/types.d.ts +1 -1
- package/src/_types/core/EVM/types.d.ts.map +1 -1
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
- package/src/_types/core/Solana/isSVMAddress.d.ts +2 -0
- package/src/_types/core/Solana/isSVMAddress.d.ts.map +1 -0
- package/src/_types/core/UTXO/UTXO.d.ts +3 -0
- package/src/_types/core/UTXO/UTXO.d.ts.map +1 -0
- package/src/_types/core/UTXO/UTXOStepExecutor.d.ts +13 -0
- package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -0
- package/src/_types/core/UTXO/blockchairApi.d.ts +37 -0
- package/src/_types/core/UTXO/blockchairApi.d.ts.map +1 -0
- package/src/_types/core/UTXO/blockchairApiTypes.d.ts +229 -0
- package/src/_types/core/UTXO/blockchairApiTypes.d.ts.map +1 -0
- package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts +10 -0
- package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts.map +1 -0
- package/src/_types/core/UTXO/getUTXOBalance.d.ts +3 -0
- package/src/_types/core/UTXO/getUTXOBalance.d.ts.map +1 -0
- package/src/_types/core/UTXO/getUTXOPublicClient.d.ts +10 -0
- package/src/_types/core/UTXO/getUTXOPublicClient.d.ts.map +1 -0
- package/src/_types/core/UTXO/isUTXOAddress.d.ts +21 -0
- package/src/_types/core/UTXO/isUTXOAddress.d.ts.map +1 -0
- package/src/_types/core/UTXO/parseUTXOErrors.d.ts +4 -0
- package/src/_types/core/UTXO/parseUTXOErrors.d.ts.map +1 -0
- package/src/_types/core/UTXO/requestClient.d.ts +22 -0
- package/src/_types/core/UTXO/requestClient.d.ts.map +1 -0
- package/src/_types/core/UTXO/types.d.ts +10 -0
- package/src/_types/core/UTXO/types.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/actions/getBalance.d.ts +9 -0
- package/src/_types/core/UTXO/utxo-stack/actions/getBalance.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/actions/getBlockCount.d.ts +5 -0
- package/src/_types/core/UTXO/utxo-stack/actions/getBlockCount.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/actions/getUTXOTransaction.d.ts +12 -0
- package/src/_types/core/UTXO/utxo-stack/actions/getUTXOTransaction.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/actions/sendUTXOTransaction.d.ts +11 -0
- package/src/_types/core/UTXO/utxo-stack/actions/sendUTXOTransaction.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/actions/signPsbt.d.ts +4 -0
- package/src/_types/core/UTXO/utxo-stack/actions/signPsbt.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/clients/types.d.ts +44 -0
- package/src/_types/core/UTXO/utxo-stack/clients/types.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOAPIActions.d.ts +7 -0
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOAPIActions.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOActions.d.ts +11 -0
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOActions.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/ankr.d.ts +3 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/ankr.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockchair.d.ts +3 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockchair.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockcypher.d.ts +3 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockcypher.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.d.ts +25 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.d.ts +3 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/mempool.d.ts +3 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/mempool.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/types.d.ts +45 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/types.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/utxo.d.ts +7 -0
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/utxo.d.ts.map +1 -0
- package/src/_types/core/UTXO/utxo-stack/types/transaction.d.ts +42 -0
- package/src/_types/core/UTXO/utxo-stack/types/transaction.d.ts.map +1 -0
- package/src/_types/core/utils.d.ts +0 -1
- package/src/_types/core/utils.d.ts.map +1 -1
- package/src/_types/core/waitForReceivingTransaction.d.ts +1 -1
- package/src/_types/core/waitForReceivingTransaction.d.ts.map +1 -1
- package/src/_types/createConfig.d.ts.map +1 -1
- package/src/_types/index.d.ts +7 -3
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/request.d.ts.map +1 -1
- package/src/_types/services/api.d.ts +1 -1
- package/src/_types/services/api.d.ts.map +1 -1
- package/src/_types/services/balance.d.ts +3 -3
- package/src/_types/services/balance.d.ts.map +1 -1
- package/src/_types/utils/index.d.ts +1 -1
- package/src/_types/utils/index.d.ts.map +1 -1
- package/src/_types/utils/isZeroAddress.d.ts +3 -0
- package/src/_types/utils/isZeroAddress.d.ts.map +1 -0
- package/src/_types/utils/sleep.d.ts +2 -0
- package/src/_types/utils/sleep.d.ts.map +1 -0
- package/src/_types/utils/waitForResult.d.ts +8 -0
- package/src/_types/utils/waitForResult.d.ts.map +1 -0
- package/src/_types/utils/withDedupe.d.ts +20 -0
- package/src/_types/utils/withDedupe.d.ts.map +1 -0
- package/src/_types/version.d.ts +1 -1
- package/src/core/EVM/EVMStepExecutor.ts +3 -5
- package/src/core/EVM/getAllowance.ts +1 -1
- package/src/core/EVM/getEVMBalance.ts +1 -1
- package/src/core/EVM/setAllowance.ts +1 -1
- package/src/core/EVM/types.ts +1 -1
- package/src/core/Solana/Solana.ts +2 -2
- package/src/core/Solana/SolanaStepExecutor.ts +14 -17
- package/src/core/Solana/getSNSAddress.ts +2 -2
- package/src/core/Solana/{isAddress.ts → isSVMAddress.ts} +1 -1
- package/src/core/UTXO/UTXO.ts +43 -0
- package/src/core/UTXO/UTXOStepExecutor.ts +351 -0
- package/src/core/UTXO/blockchairApi.ts +273 -0
- package/src/core/UTXO/blockchairApiTypes.ts +253 -0
- package/src/core/UTXO/getUTXOAPIPublicClient.ts +71 -0
- package/src/core/UTXO/getUTXOBalance.ts +31 -0
- package/src/core/UTXO/getUTXOPublicClient.ts +60 -0
- package/src/core/UTXO/isUTXOAddress.ts +166 -0
- package/src/core/UTXO/parseUTXOErrors.ts +36 -0
- package/src/core/UTXO/requestClient.ts +84 -0
- package/src/core/UTXO/types.ts +15 -0
- package/src/core/UTXO/utxo-stack/actions/getBalance.ts +26 -0
- package/src/core/UTXO/utxo-stack/actions/getBlockCount.ts +20 -0
- package/src/core/UTXO/utxo-stack/actions/getUTXOTransaction.ts +30 -0
- package/src/core/UTXO/utxo-stack/actions/sendUTXOTransaction.ts +29 -0
- package/src/core/UTXO/utxo-stack/actions/signPsbt.ts +23 -0
- package/src/core/UTXO/utxo-stack/clients/types.ts +48 -0
- package/src/core/UTXO/utxo-stack/decorators/UTXOAPIActions.ts +21 -0
- package/src/core/UTXO/utxo-stack/decorators/UTXOActions.ts +37 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/ankr.ts +30 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/blockchair.ts +27 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/blockcypher.ts +32 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.ts +122 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.ts +22 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/mempool.ts +34 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/types.ts +55 -0
- package/src/core/UTXO/utxo-stack/transports/utxo/utxo.ts +84 -0
- package/src/core/UTXO/utxo-stack/types/transaction.ts +43 -0
- package/src/core/checkBalance.ts +2 -2
- package/src/core/utils.ts +0 -6
- package/src/core/waitForReceivingTransaction.ts +5 -4
- package/src/createConfig.ts +3 -1
- package/src/index.ts +7 -3
- package/src/request.ts +3 -3
- package/src/services/api.ts +65 -44
- package/src/services/balance.ts +11 -6
- package/src/utils/index.ts +1 -1
- package/src/utils/isZeroAddress.ts +20 -0
- package/src/utils/sleep.ts +5 -0
- package/src/utils/waitForResult.ts +21 -0
- package/src/utils/withDedupe.ts +46 -0
- package/src/version.ts +1 -1
- package/src/_cjs/core/Solana/isAddress.js.map +0 -1
- package/src/_cjs/utils/utils.js.map +0 -1
- package/src/_esm/core/Solana/isAddress.js.map +0 -1
- package/src/_esm/utils/utils.js +0 -38
- package/src/_esm/utils/utils.js.map +0 -1
- package/src/_types/core/Solana/isAddress.d.ts +0 -2
- package/src/_types/core/Solana/isAddress.d.ts.map +0 -1
- package/src/_types/utils/utils.d.ts +0 -11
- package/src/_types/utils/utils.d.ts.map +0 -1
- package/src/utils/utils.ts +0 -48
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { Chain } from './blockchairApiTypes.js';
|
|
2
|
+
import { RequestClient } from './requestClient.js';
|
|
3
|
+
const baseUrl = (chain) => `https://api.blockchair.com/${mapChainToBlockchairChain(chain)}`;
|
|
4
|
+
const getDefaultTxFeeByChain = (chain) => {
|
|
5
|
+
switch (chain) {
|
|
6
|
+
case Chain.Bitcoin:
|
|
7
|
+
return 5;
|
|
8
|
+
case Chain.Dogecoin:
|
|
9
|
+
return 10000;
|
|
10
|
+
case Chain.Litecoin:
|
|
11
|
+
return 1;
|
|
12
|
+
default:
|
|
13
|
+
return 2;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const mapChainToBlockchairChain = (chain) => {
|
|
17
|
+
switch (chain) {
|
|
18
|
+
case Chain.BitcoinCash:
|
|
19
|
+
return 'bitcoin-cash';
|
|
20
|
+
case Chain.Litecoin:
|
|
21
|
+
return 'litecoin';
|
|
22
|
+
case Chain.Dash:
|
|
23
|
+
return 'dash';
|
|
24
|
+
case Chain.Dogecoin:
|
|
25
|
+
return 'dogecoin';
|
|
26
|
+
case Chain.Polkadot:
|
|
27
|
+
return 'polkadot';
|
|
28
|
+
default:
|
|
29
|
+
return 'bitcoin';
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const getSuggestedTxFee = async (chain) => {
|
|
33
|
+
try {
|
|
34
|
+
//Use Bitgo API for fee estimation
|
|
35
|
+
//Refer: https://app.bitgo.com/docs/#operation/v2.tx.getfeeestimate
|
|
36
|
+
const { feePerKb } = await RequestClient.get(`https://app.bitgo.com/api/v2/${chain.toLowerCase()}/tx/fee`);
|
|
37
|
+
const suggestedFee = feePerKb / 1000;
|
|
38
|
+
return Math.max(suggestedFee, getDefaultTxFeeByChain(chain));
|
|
39
|
+
}
|
|
40
|
+
catch (_error) {
|
|
41
|
+
return getDefaultTxFeeByChain(chain);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const blockchairRequest = async (url, apiKey) => {
|
|
45
|
+
try {
|
|
46
|
+
const response = await RequestClient.get(url);
|
|
47
|
+
if (!response || response.context.code !== 200) {
|
|
48
|
+
throw new Error(`failed to query ${url}`);
|
|
49
|
+
}
|
|
50
|
+
return response.data;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (!apiKey) {
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
const response = await RequestClient.get(`${url}${apiKey ? `&key=${apiKey}` : ''}`);
|
|
57
|
+
if (!response || response.context.code !== 200) {
|
|
58
|
+
throw new Error(`failed to query ${url}`);
|
|
59
|
+
}
|
|
60
|
+
return response.data;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const baseAddressData = {
|
|
64
|
+
utxo: [],
|
|
65
|
+
address: { balance: 0, transaction_count: 0 },
|
|
66
|
+
};
|
|
67
|
+
const getAddressData = async ({ address, chain, apiKey, }) => {
|
|
68
|
+
if (!address) {
|
|
69
|
+
throw new Error('address is required');
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const response = await blockchairRequest(`${baseUrl(chain)}/dashboards/address/${address}?transaction_details=true`, apiKey);
|
|
73
|
+
return response[address];
|
|
74
|
+
}
|
|
75
|
+
catch (_error) {
|
|
76
|
+
return baseAddressData;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const getUnconfirmedBalance = async ({ address, chain, apiKey, }) => {
|
|
80
|
+
const response = await getAddressData({ address, chain, apiKey });
|
|
81
|
+
return response?.address.balance;
|
|
82
|
+
};
|
|
83
|
+
const getConfirmedBalance = async ({ chain, address, apiKey, }) => {
|
|
84
|
+
if (!address) {
|
|
85
|
+
throw new Error('address is required');
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const response = await blockchairRequest(`${baseUrl(chain)}/addresses/balances?addresses=${address}`, apiKey);
|
|
89
|
+
return response[address] || 0;
|
|
90
|
+
}
|
|
91
|
+
catch (_error) {
|
|
92
|
+
return 0;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const getRawTx = async ({ chain, apiKey, txHash, }) => {
|
|
96
|
+
if (!txHash) {
|
|
97
|
+
throw new Error('txHash is required');
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const rawTxResponse = await blockchairRequest(`${baseUrl(chain)}/raw/transaction/${txHash}`, apiKey);
|
|
101
|
+
return rawTxResponse?.[txHash]?.raw_transaction;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error(error);
|
|
105
|
+
return '';
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const getUnspentTxs = async ({ chain, address, apiKey, offset = 0, }) => {
|
|
109
|
+
if (!address) {
|
|
110
|
+
throw new Error('address is required');
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const response = await blockchairRequest(`${baseUrl(chain)}/outputs?q=is_spent(false),recipient(${address})&limit=100&offset=${offset}`, apiKey);
|
|
114
|
+
const txs = response
|
|
115
|
+
.filter(({ is_spent }) => !is_spent)
|
|
116
|
+
.map(({ script_hex, block_id, transaction_hash, index, value, spending_signature_hex, }) => ({
|
|
117
|
+
hash: transaction_hash,
|
|
118
|
+
index,
|
|
119
|
+
value,
|
|
120
|
+
txHex: spending_signature_hex,
|
|
121
|
+
script_hex,
|
|
122
|
+
is_confirmed: block_id !== -1,
|
|
123
|
+
}));
|
|
124
|
+
if (response.length !== 100) {
|
|
125
|
+
return txs;
|
|
126
|
+
}
|
|
127
|
+
const nextBatch = await getUnspentTxs({
|
|
128
|
+
address,
|
|
129
|
+
chain,
|
|
130
|
+
apiKey,
|
|
131
|
+
offset: response?.[99]?.transaction_id,
|
|
132
|
+
});
|
|
133
|
+
return txs.concat(nextBatch);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
console.error(error);
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const scanUTXOs = async ({ address, chain, apiKey, fetchTxHex = true, }) => {
|
|
141
|
+
const utxos = await getUnspentTxs({ chain, address, apiKey });
|
|
142
|
+
const results = [];
|
|
143
|
+
for (const { hash, index, script_hex, value } of utxos) {
|
|
144
|
+
let txHex;
|
|
145
|
+
if (fetchTxHex) {
|
|
146
|
+
txHex = await getRawTx({ txHash: hash, chain, apiKey });
|
|
147
|
+
}
|
|
148
|
+
results.push({
|
|
149
|
+
address,
|
|
150
|
+
hash,
|
|
151
|
+
index,
|
|
152
|
+
txHex,
|
|
153
|
+
value,
|
|
154
|
+
witnessUtxo: { value, script: Buffer.from(script_hex, 'hex') },
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return results;
|
|
158
|
+
};
|
|
159
|
+
export const blockchairApi = ({ apiKey, chain, }) => ({
|
|
160
|
+
getConfirmedBalance: (address) => getConfirmedBalance({ chain, address, apiKey }),
|
|
161
|
+
getRawTx: (txHash) => getRawTx({ txHash, chain, apiKey }),
|
|
162
|
+
getSuggestedTxFee: () => getSuggestedTxFee(chain),
|
|
163
|
+
getBalance: (address) => getUnconfirmedBalance({ address, chain, apiKey }),
|
|
164
|
+
getAddressData: (address) => getAddressData({ address, chain, apiKey }),
|
|
165
|
+
scanUTXOs: (params) => scanUTXOs({ ...params, chain, apiKey }),
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=blockchairApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockchairApi.js","sourceRoot":"","sources":["../../../core/UTXO/blockchairApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export var Chain;
|
|
2
|
+
(function (Chain) {
|
|
3
|
+
Chain["Arbitrum"] = "ARB";
|
|
4
|
+
Chain["Avalanche"] = "AVAX";
|
|
5
|
+
Chain["BinanceSmartChain"] = "BSC";
|
|
6
|
+
Chain["Bitcoin"] = "BTC";
|
|
7
|
+
Chain["BitcoinCash"] = "BCH";
|
|
8
|
+
Chain["Cosmos"] = "GAIA";
|
|
9
|
+
Chain["Dash"] = "DASH";
|
|
10
|
+
Chain["Dogecoin"] = "DOGE";
|
|
11
|
+
Chain["Ethereum"] = "ETH";
|
|
12
|
+
Chain["Kujira"] = "KUJI";
|
|
13
|
+
Chain["Litecoin"] = "LTC";
|
|
14
|
+
Chain["Maya"] = "MAYA";
|
|
15
|
+
Chain["Optimism"] = "OP";
|
|
16
|
+
Chain["Polkadot"] = "DOT";
|
|
17
|
+
Chain["Chainflip"] = "FLIP";
|
|
18
|
+
Chain["Polygon"] = "MATIC";
|
|
19
|
+
Chain["Radix"] = "XRD";
|
|
20
|
+
Chain["THORChain"] = "THOR";
|
|
21
|
+
Chain["Solana"] = "SOL";
|
|
22
|
+
})(Chain || (Chain = {}));
|
|
23
|
+
//# sourceMappingURL=blockchairApiTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockchairApiTypes.js","sourceRoot":"","sources":["../../../core/UTXO/blockchairApiTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,KAoBX;AApBD,WAAY,KAAK;IACf,yBAAgB,CAAA;IAChB,2BAAkB,CAAA;IAClB,kCAAyB,CAAA;IACzB,wBAAe,CAAA;IACf,4BAAmB,CAAA;IACnB,wBAAe,CAAA;IACf,sBAAa,CAAA;IACb,0BAAiB,CAAA;IACjB,yBAAgB,CAAA;IAChB,wBAAe,CAAA;IACf,yBAAgB,CAAA;IAChB,sBAAa,CAAA;IACb,wBAAe,CAAA;IACf,yBAAgB,CAAA;IAChB,2BAAkB,CAAA;IAClB,0BAAiB,CAAA;IACjB,sBAAa,CAAA;IACb,2BAAkB,CAAA;IAClB,uBAAc,CAAA;AAChB,CAAC,EApBW,KAAK,KAAL,KAAK,QAoBhB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createClient, fallback, rpcSchema, } from 'viem';
|
|
2
|
+
import { config } from '../../config.js';
|
|
3
|
+
import { UTXOAPIActions } from './utxo-stack/decorators/UTXOAPIActions.js';
|
|
4
|
+
import { utxo } from './utxo-stack/transports/utxo/utxo.js';
|
|
5
|
+
// cached providers
|
|
6
|
+
const publicAPIClients = {};
|
|
7
|
+
/**
|
|
8
|
+
* Get an instance of a provider for a specific chain
|
|
9
|
+
* @param chainId - Id of the chain the provider is for
|
|
10
|
+
* @returns The public client for the given chain
|
|
11
|
+
*/
|
|
12
|
+
export const getUTXOAPIPublicClient = async (chainId) => {
|
|
13
|
+
if (!publicAPIClients[chainId]) {
|
|
14
|
+
const _chain = await config.getChainById(chainId);
|
|
15
|
+
const chain = {
|
|
16
|
+
..._chain,
|
|
17
|
+
..._chain.metamask,
|
|
18
|
+
name: _chain.metamask.chainName,
|
|
19
|
+
rpcUrls: {
|
|
20
|
+
default: { http: _chain.metamask.rpcUrls },
|
|
21
|
+
public: { http: _chain.metamask.rpcUrls },
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
const client = createClient({
|
|
25
|
+
chain,
|
|
26
|
+
rpcSchema: rpcSchema(),
|
|
27
|
+
transport: fallback([
|
|
28
|
+
utxo('https://api.blockchair.com', {
|
|
29
|
+
key: 'blockchair',
|
|
30
|
+
includeChainToURL: true,
|
|
31
|
+
}),
|
|
32
|
+
utxo('https://rpc.ankr.com/http/btc_blockbook/api/v2', {
|
|
33
|
+
key: 'ankr',
|
|
34
|
+
}),
|
|
35
|
+
utxo('https://api.blockcypher.com/v1/btc/main', {
|
|
36
|
+
key: 'blockcypher',
|
|
37
|
+
}),
|
|
38
|
+
utxo('https://mempool.space/api', {
|
|
39
|
+
key: 'mempool',
|
|
40
|
+
}),
|
|
41
|
+
]),
|
|
42
|
+
}).extend(UTXOAPIActions);
|
|
43
|
+
publicAPIClients[chainId] = client;
|
|
44
|
+
}
|
|
45
|
+
if (!publicAPIClients[chainId]) {
|
|
46
|
+
throw new Error(`Unable to configure provider for chain ${chainId}`);
|
|
47
|
+
}
|
|
48
|
+
return publicAPIClients[chainId];
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=getUTXOAPIPublicClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUTXOAPIPublicClient.js","sourceRoot":"","sources":["../../../core/UTXO/getUTXOAPIPublicClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,GAKV,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAA;AAE3D,mBAAmB;AACnB,MAAM,gBAAgB,GASlB,EAAE,CAAA;AAEN;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,KAAK,GAAU;YACnB,GAAG,MAAM;YACT,GAAG,MAAM,CAAC,QAAQ;YAClB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;YAC/B,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;aAC1C;SACF,CAAA;QACD,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,KAAK;YACL,SAAS,EAAE,SAAS,EAAiB;YACrC,SAAS,EAAE,QAAQ,CAAC;gBAClB,IAAI,CAAC,4BAA4B,EAAE;oBACjC,GAAG,EAAE,YAAY;oBACjB,iBAAiB,EAAE,IAAI;iBACxB,CAAC;gBACF,IAAI,CAAC,gDAAgD,EAAE;oBACrD,GAAG,EAAE,MAAM;iBACZ,CAAC;gBACF,IAAI,CAAC,yCAAyC,EAAE;oBAC9C,GAAG,EAAE,aAAa;iBACnB,CAAC;gBACF,IAAI,CAAC,2BAA2B,EAAE;oBAChC,GAAG,EAAE,SAAS;iBACf,CAAC;aACH,CAAC;SACH,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QACzB,gBAAgB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACpC,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAA;AAClC,CAAC,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChainId } from '@lifi/types';
|
|
2
|
+
import { getUTXOAPIPublicClient } from './getUTXOAPIPublicClient.js';
|
|
3
|
+
import { getUTXOPublicClient } from './getUTXOPublicClient.js';
|
|
4
|
+
export const getUTXOBalance = async (walletAddress, tokens) => {
|
|
5
|
+
if (tokens.length === 0) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
const { chainId } = tokens[0];
|
|
9
|
+
tokens.forEach((token) => {
|
|
10
|
+
if (token.chainId !== chainId) {
|
|
11
|
+
console.warn(`Requested tokens have to be on the same chain.`);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
const apiClient = await getUTXOAPIPublicClient(ChainId.BTC);
|
|
15
|
+
const client = await getUTXOPublicClient(ChainId.BTC);
|
|
16
|
+
const [balance, blockCount] = await Promise.all([
|
|
17
|
+
apiClient.getBalance({ address: walletAddress }),
|
|
18
|
+
client.getBlockCount(),
|
|
19
|
+
]);
|
|
20
|
+
return tokens.map((token) => ({
|
|
21
|
+
...token,
|
|
22
|
+
amount: balance,
|
|
23
|
+
blockNumber: BigInt(blockCount),
|
|
24
|
+
}));
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=getUTXOBalance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUTXOBalance.js","sourceRoot":"","sources":["../../../core/UTXO/getUTXOBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgC,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,aAAqB,EACrB,MAAe,EACS,EAAE;IAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAChD,MAAM,CAAC,aAAa,EAAE;KACvB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,GAAG,KAAK;QACR,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;KAChC,CAAC,CAAC,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createClient, fallback, http, rpcSchema, } from 'viem';
|
|
2
|
+
import { config } from '../../config.js';
|
|
3
|
+
import { getRpcUrls } from '../rpc.js';
|
|
4
|
+
import { UTXOActions } from './utxo-stack/decorators/UTXOActions.js';
|
|
5
|
+
// cached providers
|
|
6
|
+
const publicClients = {};
|
|
7
|
+
/**
|
|
8
|
+
* Get an instance of a provider for a specific chain
|
|
9
|
+
* @param chainId - Id of the chain the provider is for
|
|
10
|
+
* @returns The public client for the given chain
|
|
11
|
+
*/
|
|
12
|
+
export const getUTXOPublicClient = async (chainId) => {
|
|
13
|
+
if (!publicClients[chainId]) {
|
|
14
|
+
const urls = await getRpcUrls(chainId);
|
|
15
|
+
const fallbackTransports = urls.map((url) => http(url));
|
|
16
|
+
const _chain = await config.getChainById(chainId);
|
|
17
|
+
const chain = {
|
|
18
|
+
..._chain,
|
|
19
|
+
..._chain.metamask,
|
|
20
|
+
name: _chain.metamask.chainName,
|
|
21
|
+
rpcUrls: {
|
|
22
|
+
default: { http: _chain.metamask.rpcUrls },
|
|
23
|
+
public: { http: _chain.metamask.rpcUrls },
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const client = createClient({
|
|
27
|
+
chain,
|
|
28
|
+
rpcSchema: rpcSchema(),
|
|
29
|
+
transport: fallback(fallbackTransports),
|
|
30
|
+
}).extend(UTXOActions);
|
|
31
|
+
publicClients[chainId] = client;
|
|
32
|
+
}
|
|
33
|
+
if (!publicClients[chainId]) {
|
|
34
|
+
throw new Error(`Unable to configure provider for chain ${chainId}`);
|
|
35
|
+
}
|
|
36
|
+
return publicClients[chainId];
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=getUTXOPublicClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUTXOPublicClient.js","sourceRoot":"","sources":["../../../core/UTXO/getUTXOPublicClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,SAAS,GAKV,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAGpE,mBAAmB;AACnB,MAAM,aAAa,GASf,EAAE,CAAA;AAEN;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC3D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,KAAK,GAAU;YACnB,GAAG,MAAM;YACT,GAAG,MAAM,CAAC,QAAQ;YAClB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;YAC/B,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;aAC1C;SACF,CAAA;QACD,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,KAAK;YACL,SAAS,EAAE,SAAS,EAAc;YAClC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC;SACxC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACtB,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACjC,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { sha256 } from '@noble/hashes/sha256';
|
|
2
|
+
import { bech32, bech32m } from 'bech32';
|
|
3
|
+
import bs58 from 'bs58';
|
|
4
|
+
export var UTXONetwork;
|
|
5
|
+
(function (UTXONetwork) {
|
|
6
|
+
UTXONetwork["Mainnet"] = "mainnet";
|
|
7
|
+
UTXONetwork["Testnet"] = "testnet";
|
|
8
|
+
UTXONetwork["Regtest"] = "regtest";
|
|
9
|
+
})(UTXONetwork || (UTXONetwork = {}));
|
|
10
|
+
export var UTXOAddressType;
|
|
11
|
+
(function (UTXOAddressType) {
|
|
12
|
+
UTXOAddressType["p2pkh"] = "p2pkh";
|
|
13
|
+
UTXOAddressType["p2sh"] = "p2sh";
|
|
14
|
+
UTXOAddressType["p2wpkh"] = "p2wpkh";
|
|
15
|
+
UTXOAddressType["p2wsh"] = "p2wsh";
|
|
16
|
+
UTXOAddressType["p2tr"] = "p2tr";
|
|
17
|
+
})(UTXOAddressType || (UTXOAddressType = {}));
|
|
18
|
+
const addressTypes = {
|
|
19
|
+
0x00: {
|
|
20
|
+
type: UTXOAddressType.p2pkh,
|
|
21
|
+
network: UTXONetwork.Mainnet,
|
|
22
|
+
},
|
|
23
|
+
0x6f: {
|
|
24
|
+
type: UTXOAddressType.p2pkh,
|
|
25
|
+
network: UTXONetwork.Testnet,
|
|
26
|
+
},
|
|
27
|
+
0x05: {
|
|
28
|
+
type: UTXOAddressType.p2sh,
|
|
29
|
+
network: UTXONetwork.Mainnet,
|
|
30
|
+
},
|
|
31
|
+
0xc4: {
|
|
32
|
+
type: UTXOAddressType.p2sh,
|
|
33
|
+
network: UTXONetwork.Testnet,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
const parseBech32 = (address) => {
|
|
37
|
+
let decoded;
|
|
38
|
+
try {
|
|
39
|
+
if (address.startsWith('bc1p') ||
|
|
40
|
+
address.startsWith('tb1p') ||
|
|
41
|
+
address.startsWith('bcrt1p')) {
|
|
42
|
+
decoded = bech32m.decode(address);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
decoded = bech32.decode(address);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new Error('Invalid address');
|
|
50
|
+
}
|
|
51
|
+
const mapPrefixToNetwork = {
|
|
52
|
+
bc: UTXONetwork.Mainnet,
|
|
53
|
+
tb: UTXONetwork.Testnet,
|
|
54
|
+
bcrt: UTXONetwork.Regtest,
|
|
55
|
+
};
|
|
56
|
+
const network = mapPrefixToNetwork[decoded.prefix];
|
|
57
|
+
if (network === undefined) {
|
|
58
|
+
throw new Error('Invalid address');
|
|
59
|
+
}
|
|
60
|
+
const witnessVersion = decoded.words[0];
|
|
61
|
+
if (witnessVersion < 0 || witnessVersion > 16) {
|
|
62
|
+
throw new Error('Invalid address');
|
|
63
|
+
}
|
|
64
|
+
const data = bech32.fromWords(decoded.words.slice(1));
|
|
65
|
+
let type;
|
|
66
|
+
if (data.length === 20) {
|
|
67
|
+
type = UTXOAddressType.p2wpkh;
|
|
68
|
+
}
|
|
69
|
+
else if (witnessVersion === 1) {
|
|
70
|
+
type = UTXOAddressType.p2tr;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
type = UTXOAddressType.p2wsh;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
bech32: true,
|
|
77
|
+
network,
|
|
78
|
+
address,
|
|
79
|
+
type,
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export const getUTXOAddress = (address) => {
|
|
83
|
+
let decoded;
|
|
84
|
+
const prefix = address.substring(0, 2).toLowerCase();
|
|
85
|
+
if (prefix === 'bc' || prefix === 'tb') {
|
|
86
|
+
return parseBech32(address);
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
decoded = bs58.decode(address);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
throw new Error('Invalid address');
|
|
93
|
+
}
|
|
94
|
+
const { length } = decoded;
|
|
95
|
+
if (length !== 25) {
|
|
96
|
+
throw new Error('Invalid address');
|
|
97
|
+
}
|
|
98
|
+
const version = decoded[0];
|
|
99
|
+
const checksum = decoded.slice(length - 4, length);
|
|
100
|
+
const body = decoded.slice(0, length - 4);
|
|
101
|
+
const expectedChecksum = sha256(sha256(body)).slice(0, 4);
|
|
102
|
+
if (checksum.some((value, index) => value !== expectedChecksum[index])) {
|
|
103
|
+
throw new Error('Invalid address');
|
|
104
|
+
}
|
|
105
|
+
const validVersions = Object.keys(addressTypes).map(Number);
|
|
106
|
+
if (!validVersions.includes(version)) {
|
|
107
|
+
throw new Error('Invalid address');
|
|
108
|
+
}
|
|
109
|
+
const addressType = addressTypes[version];
|
|
110
|
+
return {
|
|
111
|
+
...addressType,
|
|
112
|
+
address,
|
|
113
|
+
bech32: false,
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
export const isUTXOAddress = (address, network) => {
|
|
117
|
+
try {
|
|
118
|
+
const utxoAddress = getUTXOAddress(address);
|
|
119
|
+
if (network) {
|
|
120
|
+
return network === utxoAddress.network;
|
|
121
|
+
}
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=isUTXOAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isUTXOAddress.js","sourceRoot":"","sources":["../../../core/UTXO/isUTXOAddress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseError } from '../../errors/baseError.js';
|
|
2
|
+
import { ErrorMessage, LiFiErrorCode } from '../../errors/constants.js';
|
|
3
|
+
import { TransactionError, UnknownError } from '../../errors/errors.js';
|
|
4
|
+
import { SDKError } from '../../errors/SDKError.js';
|
|
5
|
+
export const parseUTXOErrors = async (e, step, process) => {
|
|
6
|
+
if (e instanceof SDKError) {
|
|
7
|
+
e.step = e.step ?? step;
|
|
8
|
+
e.process = e.process ?? process;
|
|
9
|
+
return e;
|
|
10
|
+
}
|
|
11
|
+
const baseError = handleSpecificErrors(e);
|
|
12
|
+
return new SDKError(baseError, step, process);
|
|
13
|
+
};
|
|
14
|
+
const handleSpecificErrors = (e) => {
|
|
15
|
+
if (e.code === 4001 || e.code === -32000) {
|
|
16
|
+
return new TransactionError(LiFiErrorCode.SignatureRejected, e.message, e);
|
|
17
|
+
}
|
|
18
|
+
if (e.code === -5 || e.code === -32700 || e.code === -32064) {
|
|
19
|
+
return new TransactionError(LiFiErrorCode.NotFound, e.message, e);
|
|
20
|
+
}
|
|
21
|
+
if (e instanceof BaseError) {
|
|
22
|
+
return e;
|
|
23
|
+
}
|
|
24
|
+
return new UnknownError(e.message || ErrorMessage.UnknownError, e);
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=parseUTXOErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseUTXOErrors.js","sourceRoot":"","sources":["../../../core/UTXO/parseUTXOErrors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,CAAQ,EACR,IAAe,EACf,OAAiB,EACE,EAAE;IACrB,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAA;QACvB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAA;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAEzC,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAM,EAAE,EAAE;IACtC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
let clientConfig = {};
|
|
2
|
+
export const defaultRequestHeaders = typeof window !== 'undefined'
|
|
3
|
+
? {}
|
|
4
|
+
: {
|
|
5
|
+
referrer: 'https://sk.thorswap.net',
|
|
6
|
+
referer: 'https://sk.thorswap.net',
|
|
7
|
+
};
|
|
8
|
+
export function setRequestClientConfig({ apiKey, ...config }) {
|
|
9
|
+
clientConfig = { ...config, apiKey };
|
|
10
|
+
}
|
|
11
|
+
async function fetchWithConfig(url, options) {
|
|
12
|
+
const { apiKey, ...config } = clientConfig;
|
|
13
|
+
const { searchParams, json, body } = options;
|
|
14
|
+
const headers = {
|
|
15
|
+
...defaultRequestHeaders,
|
|
16
|
+
...config.headers,
|
|
17
|
+
...options.headers,
|
|
18
|
+
};
|
|
19
|
+
const bodyToSend = json ? JSON.stringify(json) : body;
|
|
20
|
+
const urlInstance = new URL(url);
|
|
21
|
+
if (searchParams) {
|
|
22
|
+
urlInstance.search = new URLSearchParams(searchParams).toString();
|
|
23
|
+
}
|
|
24
|
+
if (apiKey) {
|
|
25
|
+
headers['x-api-key'] = apiKey;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const response = await fetch(urlInstance.toString(), {
|
|
29
|
+
...config,
|
|
30
|
+
...options,
|
|
31
|
+
body: bodyToSend,
|
|
32
|
+
headers,
|
|
33
|
+
});
|
|
34
|
+
const body = await response.json();
|
|
35
|
+
if (options.responseHandler) {
|
|
36
|
+
return options.responseHandler(body);
|
|
37
|
+
}
|
|
38
|
+
return body;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (options.onError) {
|
|
42
|
+
return options.onError(error);
|
|
43
|
+
}
|
|
44
|
+
console.error(error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export const RequestClient = {
|
|
48
|
+
get: async (url, options) => fetchWithConfig(url, { ...options, method: 'GET' }),
|
|
49
|
+
post: async (url, options) => fetchWithConfig(url, { ...options, method: 'POST' }),
|
|
50
|
+
extend: (options) => {
|
|
51
|
+
const extendedConfig = { ...clientConfig, ...options };
|
|
52
|
+
return {
|
|
53
|
+
get: async (url, options) => fetchWithConfig(url, { ...extendedConfig, ...options, method: 'GET' }),
|
|
54
|
+
post: async (url, options) => fetchWithConfig(url, { ...extendedConfig, ...options, method: 'POST' }),
|
|
55
|
+
extend: (newOptions) => RequestClient.extend({ ...extendedConfig, ...newOptions }),
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=requestClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestClient.js","sourceRoot":"","sources":["../../../core/UTXO/requestClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/UTXO/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAoB,MAAM,aAAa,CAAA;AAU9C,MAAM,UAAU,MAAM,CAAC,QAAqB;IAC1C,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,MAAM,MAAM,CAAA;AAU5E,MAAM,CAAC,KAAK,UAAU,UAAU,CAI9B,MAA8C,EAC9C,MAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;QACE,MAAM,EAAE,YAAY;QACpB,MAAM;KACP,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBlockCount.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getBlockCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,MAAM,MAAM,CAAA;AAK5E,MAAM,CAAC,KAAK,UAAU,aAAa,CAIjC,MAA2C;IAE3C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;QACE,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,EAAE;KACX,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {} from 'viem';
|
|
2
|
+
export async function getUTXOTransaction(client, { txId, blockhash }) {
|
|
3
|
+
const params = [txId, true];
|
|
4
|
+
if (blockhash) {
|
|
5
|
+
params.push(blockhash);
|
|
6
|
+
}
|
|
7
|
+
const data = await client.request({
|
|
8
|
+
method: 'getrawtransaction',
|
|
9
|
+
params: params,
|
|
10
|
+
});
|
|
11
|
+
return data;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=getUTXOTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUTXOTransaction.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getUTXOTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,MAAM,MAAM,CAAA;AAa5E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAItC,MAA2C,EAC3C,EAAE,IAAI,EAAE,SAAS,EAAgC;IAEjD,MAAM,MAAM,GAA+B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACvD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {} from 'viem';
|
|
2
|
+
export async function sendUTXOTransaction(client, { hex, maxFeeRate }) {
|
|
3
|
+
const params = [hex];
|
|
4
|
+
if (maxFeeRate) {
|
|
5
|
+
params.push(maxFeeRate);
|
|
6
|
+
}
|
|
7
|
+
const data = await client.request({
|
|
8
|
+
method: 'sendrawtransaction',
|
|
9
|
+
params: params,
|
|
10
|
+
});
|
|
11
|
+
return data;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sendUTXOTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendUTXOTransaction.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/sendUTXOTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,MAAM,MAAM,CAAA;AAY5E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAIvC,MAA2C,EAC3C,EAAE,GAAG,EAAE,UAAU,EAAiC;IAElD,MAAM,MAAM,GAAsB,CAAC,GAAG,CAAC,CAAA;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,oBAAoB;QAC5B,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
|