@lifi/sdk 3.3.0-beta.2 → 3.3.0-beta.4
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 +4 -3
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +10 -0
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_cjs/core/UTXO/UTXO.js +2 -2
- package/src/_cjs/core/UTXO/UTXO.js.map +1 -1
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js +3 -4
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
- package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js +7 -7
- package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js.map +1 -1
- package/src/_cjs/core/UTXO/getUTXOPublicClient.js +2 -2
- package/src/_cjs/core/UTXO/getUTXOPublicClient.js.map +1 -1
- package/src/_cjs/index.js +2 -4
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_esm/core/Solana/SolanaStepExecutor.js +10 -0
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_esm/core/UTXO/UTXO.js +1 -1
- package/src/_esm/core/UTXO/UTXO.js.map +1 -1
- package/src/_esm/core/UTXO/UTXOStepExecutor.js +1 -2
- package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
- package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js +2 -2
- package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js.map +1 -1
- package/src/_esm/core/UTXO/getUTXOPublicClient.js +1 -1
- package/src/_esm/core/UTXO/getUTXOPublicClient.js.map +1 -1
- package/src/_esm/index.js +0 -1
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
- package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -1
- package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts +2 -2
- package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts.map +1 -1
- package/src/_types/core/UTXO/getUTXOPublicClient.d.ts +2 -2
- package/src/_types/core/UTXO/getUTXOPublicClient.d.ts.map +1 -1
- package/src/_types/index.d.ts +0 -2
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/core/Solana/SolanaStepExecutor.ts +12 -0
- package/src/core/UTXO/UTXO.ts +1 -1
- package/src/core/UTXO/UTXOStepExecutor.ts +2 -5
- package/src/core/UTXO/getUTXOAPIPublicClient.ts +3 -3
- package/src/core/UTXO/getUTXOPublicClient.ts +2 -2
- package/src/index.ts +0 -8
- package/src/version.ts +1 -1
- package/src/_cjs/core/UTXO/isUTXOAddress.js +0 -133
- package/src/_cjs/core/UTXO/isUTXOAddress.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBalance.js +0 -11
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBalance.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlock.js +0 -31
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlock.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockCount.js +0 -11
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockCount.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockStats.js +0 -27
- package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockStats.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/getUTXOTransaction.js +0 -24
- package/src/_cjs/core/UTXO/utxo-stack/actions/getUTXOTransaction.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js +0 -15
- package/src/_cjs/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/signPsbt.js +0 -11
- package/src/_cjs/core/UTXO/utxo-stack/actions/signPsbt.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/waitForTransaction.js +0 -185
- package/src/_cjs/core/UTXO/utxo-stack/actions/waitForTransaction.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/actions/watchBlockNumber.js +0 -45
- package/src/_cjs/core/UTXO/utxo-stack/actions/watchBlockNumber.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/clients/types.js +0 -3
- package/src/_cjs/core/UTXO/utxo-stack/clients/types.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js +0 -10
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOActions.js +0 -14
- package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOActions.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/ankr.js +0 -21
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/ankr.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockchair.js +0 -24
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockchair.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockcypher.js +0 -21
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockcypher.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js +0 -77
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js +0 -22
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/mempool.js +0 -17
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/mempool.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/types.js +0 -3
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/types.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/utxo.js +0 -56
- package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/utxo.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/types/blockStats.js +0 -3
- package/src/_cjs/core/UTXO/utxo-stack/types/blockStats.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/types/transaction.js +0 -3
- package/src/_cjs/core/UTXO/utxo-stack/types/transaction.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/utils/cancelTransaction.js +0 -51
- package/src/_cjs/core/UTXO/utxo-stack/utils/cancelTransaction.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/utils/modifyFee.js +0 -50
- package/src/_cjs/core/UTXO/utxo-stack/utils/modifyFee.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/utils/observe.js +0 -48
- package/src/_cjs/core/UTXO/utxo-stack/utils/observe.js.map +0 -1
- package/src/_cjs/core/UTXO/utxo-stack/utils/poll.js +0 -30
- package/src/_cjs/core/UTXO/utxo-stack/utils/poll.js.map +0 -1
- package/src/_esm/core/UTXO/isUTXOAddress.js +0 -128
- package/src/_esm/core/UTXO/isUTXOAddress.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/getBalance.js +0 -8
- package/src/_esm/core/UTXO/utxo-stack/actions/getBalance.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlock.js +0 -28
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlock.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlockCount.js +0 -8
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlockCount.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlockStats.js +0 -24
- package/src/_esm/core/UTXO/utxo-stack/actions/getBlockStats.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/getUTXOTransaction.js +0 -21
- package/src/_esm/core/UTXO/utxo-stack/actions/getUTXOTransaction.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js +0 -12
- package/src/_esm/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/signPsbt.js +0 -8
- package/src/_esm/core/UTXO/utxo-stack/actions/signPsbt.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/waitForTransaction.js +0 -230
- package/src/_esm/core/UTXO/utxo-stack/actions/waitForTransaction.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/actions/watchBlockNumber.js +0 -58
- package/src/_esm/core/UTXO/utxo-stack/actions/watchBlockNumber.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/clients/types.js +0 -2
- package/src/_esm/core/UTXO/utxo-stack/clients/types.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js +0 -7
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOActions.js +0 -11
- package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOActions.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/ankr.js +0 -18
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/ankr.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockchair.js +0 -21
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockchair.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockcypher.js +0 -18
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockcypher.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js +0 -74
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js +0 -19
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/mempool.js +0 -14
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/mempool.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/types.js +0 -2
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/types.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/utxo.js +0 -53
- package/src/_esm/core/UTXO/utxo-stack/transports/utxo/utxo.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/types/blockStats.js +0 -2
- package/src/_esm/core/UTXO/utxo-stack/types/blockStats.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/types/transaction.js +0 -2
- package/src/_esm/core/UTXO/utxo-stack/types/transaction.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/utils/cancelTransaction.js +0 -55
- package/src/_esm/core/UTXO/utxo-stack/utils/cancelTransaction.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/utils/modifyFee.js +0 -53
- package/src/_esm/core/UTXO/utxo-stack/utils/modifyFee.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/utils/observe.js +0 -51
- package/src/_esm/core/UTXO/utxo-stack/utils/observe.js.map +0 -1
- package/src/_esm/core/UTXO/utxo-stack/utils/poll.js +0 -30
- package/src/_esm/core/UTXO/utxo-stack/utils/poll.js.map +0 -1
- package/src/_types/core/UTXO/isUTXOAddress.d.ts +0 -21
- package/src/_types/core/UTXO/isUTXOAddress.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/getBalance.d.ts +0 -9
- package/src/_types/core/UTXO/utxo-stack/actions/getBalance.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/getBlock.d.ts +0 -13
- package/src/_types/core/UTXO/utxo-stack/actions/getBlock.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/getBlockCount.d.ts +0 -5
- package/src/_types/core/UTXO/utxo-stack/actions/getBlockCount.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/getBlockStats.d.ts +0 -15
- package/src/_types/core/UTXO/utxo-stack/actions/getBlockStats.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/getUTXOTransaction.d.ts +0 -12
- package/src/_types/core/UTXO/utxo-stack/actions/getUTXOTransaction.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/sendUTXOTransaction.d.ts +0 -11
- package/src/_types/core/UTXO/utxo-stack/actions/sendUTXOTransaction.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/signPsbt.d.ts +0 -4
- package/src/_types/core/UTXO/utxo-stack/actions/signPsbt.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/waitForTransaction.d.ts +0 -76
- package/src/_types/core/UTXO/utxo-stack/actions/waitForTransaction.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/actions/watchBlockNumber.d.ts +0 -26
- package/src/_types/core/UTXO/utxo-stack/actions/watchBlockNumber.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/clients/types.d.ts +0 -44
- package/src/_types/core/UTXO/utxo-stack/clients/types.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOAPIActions.d.ts +0 -7
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOAPIActions.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOActions.d.ts +0 -11
- package/src/_types/core/UTXO/utxo-stack/decorators/UTXOActions.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/ankr.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/ankr.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockchair.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockchair.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockcypher.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockcypher.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.d.ts +0 -25
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/mempool.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/mempool.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/types.d.ts +0 -61
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/types.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/utxo.d.ts +0 -7
- package/src/_types/core/UTXO/utxo-stack/transports/utxo/utxo.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/types/blockStats.d.ts +0 -35
- package/src/_types/core/UTXO/utxo-stack/types/blockStats.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/types/transaction.d.ts +0 -42
- package/src/_types/core/UTXO/utxo-stack/types/transaction.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/utils/cancelTransaction.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/utils/cancelTransaction.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/utils/modifyFee.d.ts +0 -3
- package/src/_types/core/UTXO/utxo-stack/utils/modifyFee.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/utils/observe.d.ts +0 -19
- package/src/_types/core/UTXO/utxo-stack/utils/observe.d.ts.map +0 -1
- package/src/_types/core/UTXO/utxo-stack/utils/poll.d.ts +0 -13
- package/src/_types/core/UTXO/utxo-stack/utils/poll.d.ts.map +0 -1
- package/src/core/UTXO/isUTXOAddress.ts +0 -165
- package/src/core/UTXO/utxo-stack/actions/getBalance.ts +0 -26
- package/src/core/UTXO/utxo-stack/actions/getBlock.ts +0 -58
- package/src/core/UTXO/utxo-stack/actions/getBlockCount.ts +0 -20
- package/src/core/UTXO/utxo-stack/actions/getBlockStats.ts +0 -55
- package/src/core/UTXO/utxo-stack/actions/getUTXOTransaction.ts +0 -43
- package/src/core/UTXO/utxo-stack/actions/sendUTXOTransaction.ts +0 -29
- package/src/core/UTXO/utxo-stack/actions/signPsbt.ts +0 -23
- package/src/core/UTXO/utxo-stack/actions/waitForTransaction.ts +0 -387
- package/src/core/UTXO/utxo-stack/actions/watchBlockNumber.ts +0 -105
- package/src/core/UTXO/utxo-stack/clients/types.ts +0 -48
- package/src/core/UTXO/utxo-stack/decorators/UTXOAPIActions.ts +0 -20
- package/src/core/UTXO/utxo-stack/decorators/UTXOActions.ts +0 -37
- package/src/core/UTXO/utxo-stack/transports/utxo/ankr.ts +0 -30
- package/src/core/UTXO/utxo-stack/transports/utxo/blockchair.ts +0 -27
- package/src/core/UTXO/utxo-stack/transports/utxo/blockcypher.ts +0 -32
- package/src/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.ts +0 -122
- package/src/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.ts +0 -22
- package/src/core/UTXO/utxo-stack/transports/utxo/mempool.ts +0 -34
- package/src/core/UTXO/utxo-stack/transports/utxo/types.ts +0 -71
- package/src/core/UTXO/utxo-stack/transports/utxo/utxo.ts +0 -84
- package/src/core/UTXO/utxo-stack/types/blockStats.ts +0 -35
- package/src/core/UTXO/utxo-stack/types/transaction.ts +0 -43
- package/src/core/UTXO/utxo-stack/utils/cancelTransaction.ts +0 -75
- package/src/core/UTXO/utxo-stack/utils/modifyFee.ts +0 -78
- package/src/core/UTXO/utxo-stack/utils/observe.ts +0 -81
- package/src/core/UTXO/utxo-stack/utils/poll.ts +0 -48
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { sha256 } from '@noble/hashes/sha256'
|
|
2
|
-
import { type Decoded, bech32, bech32m } from 'bech32'
|
|
3
|
-
import bs58 from 'bs58'
|
|
4
|
-
|
|
5
|
-
export enum UTXONetwork {
|
|
6
|
-
Mainnet = 'mainnet',
|
|
7
|
-
Testnet = 'testnet',
|
|
8
|
-
Regtest = 'regtest',
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export enum UTXOAddressType {
|
|
12
|
-
p2pkh = 'p2pkh',
|
|
13
|
-
p2sh = 'p2sh',
|
|
14
|
-
p2wpkh = 'p2wpkh',
|
|
15
|
-
p2wsh = 'p2wsh',
|
|
16
|
-
p2tr = 'p2tr',
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type UTXOAddress = {
|
|
20
|
-
bech32: boolean
|
|
21
|
-
network: UTXONetwork
|
|
22
|
-
address: string
|
|
23
|
-
type: UTXOAddressType
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const addressTypes: {
|
|
27
|
-
[key: number]: { type: UTXOAddressType; network: UTXONetwork }
|
|
28
|
-
} = {
|
|
29
|
-
0: {
|
|
30
|
-
type: UTXOAddressType.p2pkh,
|
|
31
|
-
network: UTXONetwork.Mainnet,
|
|
32
|
-
},
|
|
33
|
-
111: {
|
|
34
|
-
type: UTXOAddressType.p2pkh,
|
|
35
|
-
network: UTXONetwork.Testnet,
|
|
36
|
-
},
|
|
37
|
-
5: {
|
|
38
|
-
type: UTXOAddressType.p2sh,
|
|
39
|
-
network: UTXONetwork.Mainnet,
|
|
40
|
-
},
|
|
41
|
-
196: {
|
|
42
|
-
type: UTXOAddressType.p2sh,
|
|
43
|
-
network: UTXONetwork.Testnet,
|
|
44
|
-
},
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const parseBech32 = (address: string): UTXOAddress => {
|
|
48
|
-
let decoded: Decoded
|
|
49
|
-
|
|
50
|
-
try {
|
|
51
|
-
if (
|
|
52
|
-
address.startsWith('bc1p') ||
|
|
53
|
-
address.startsWith('tb1p') ||
|
|
54
|
-
address.startsWith('bcrt1p')
|
|
55
|
-
) {
|
|
56
|
-
decoded = bech32m.decode(address)
|
|
57
|
-
} else {
|
|
58
|
-
decoded = bech32.decode(address)
|
|
59
|
-
}
|
|
60
|
-
} catch (_error) {
|
|
61
|
-
throw new Error('Invalid address')
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const mapPrefixToNetwork: { [key: string]: UTXONetwork } = {
|
|
65
|
-
bc: UTXONetwork.Mainnet,
|
|
66
|
-
tb: UTXONetwork.Testnet,
|
|
67
|
-
bcrt: UTXONetwork.Regtest,
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const network: UTXONetwork = mapPrefixToNetwork[decoded.prefix]
|
|
71
|
-
|
|
72
|
-
if (network === undefined) {
|
|
73
|
-
throw new Error('Invalid address')
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const witnessVersion = decoded.words[0]
|
|
77
|
-
|
|
78
|
-
if (witnessVersion < 0 || witnessVersion > 16) {
|
|
79
|
-
throw new Error('Invalid address')
|
|
80
|
-
}
|
|
81
|
-
const data = bech32.fromWords(decoded.words.slice(1))
|
|
82
|
-
|
|
83
|
-
let type: UTXOAddressType
|
|
84
|
-
if (data.length === 20) {
|
|
85
|
-
type = UTXOAddressType.p2wpkh
|
|
86
|
-
} else if (witnessVersion === 1) {
|
|
87
|
-
type = UTXOAddressType.p2tr
|
|
88
|
-
} else {
|
|
89
|
-
type = UTXOAddressType.p2wsh
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return {
|
|
93
|
-
bech32: true,
|
|
94
|
-
network,
|
|
95
|
-
address,
|
|
96
|
-
type,
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export const getUTXOAddress = (address: string): UTXOAddress => {
|
|
101
|
-
let decoded: Uint8Array
|
|
102
|
-
const prefix = address.substring(0, 2).toLowerCase()
|
|
103
|
-
|
|
104
|
-
if (prefix === 'bc' || prefix === 'tb') {
|
|
105
|
-
return parseBech32(address)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
try {
|
|
109
|
-
decoded = bs58.decode(address)
|
|
110
|
-
} catch (_error) {
|
|
111
|
-
throw new Error('Invalid address')
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
const { length } = decoded
|
|
115
|
-
|
|
116
|
-
if (length !== 25) {
|
|
117
|
-
throw new Error('Invalid address')
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const version = decoded[0]
|
|
121
|
-
|
|
122
|
-
const checksum = decoded.slice(length - 4, length)
|
|
123
|
-
const body = decoded.slice(0, length - 4)
|
|
124
|
-
|
|
125
|
-
const expectedChecksum = sha256(sha256(body)).slice(0, 4)
|
|
126
|
-
|
|
127
|
-
if (
|
|
128
|
-
checksum.some(
|
|
129
|
-
(value: number, index: number) => value !== expectedChecksum[index]
|
|
130
|
-
)
|
|
131
|
-
) {
|
|
132
|
-
throw new Error('Invalid address')
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const validVersions = Object.keys(addressTypes).map(Number)
|
|
136
|
-
|
|
137
|
-
if (!validVersions.includes(version)) {
|
|
138
|
-
throw new Error('Invalid address')
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const addressType = addressTypes[version]
|
|
142
|
-
|
|
143
|
-
return {
|
|
144
|
-
...addressType,
|
|
145
|
-
address,
|
|
146
|
-
bech32: false,
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
export const isUTXOAddress = (
|
|
151
|
-
address: string,
|
|
152
|
-
network?: UTXONetwork
|
|
153
|
-
): boolean => {
|
|
154
|
-
try {
|
|
155
|
-
const utxoAddress = getUTXOAddress(address)
|
|
156
|
-
|
|
157
|
-
if (network) {
|
|
158
|
-
return network === utxoAddress.network
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return true
|
|
162
|
-
} catch (_error) {
|
|
163
|
-
return false
|
|
164
|
-
}
|
|
165
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { Account, Chain, Client, Transport } from 'viem'
|
|
2
|
-
import type { UTXOAPISchema } from '../transports/utxo/types.js'
|
|
3
|
-
|
|
4
|
-
export type GetBalanceParameters = {
|
|
5
|
-
/** The address of the account. */
|
|
6
|
-
address: string
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export type GetBalanceReturnType = bigint
|
|
10
|
-
|
|
11
|
-
export async function getBalance<
|
|
12
|
-
C extends Chain | undefined,
|
|
13
|
-
A extends Account | undefined = Account | undefined,
|
|
14
|
-
>(
|
|
15
|
-
client: Client<Transport, C, A, UTXOAPISchema>,
|
|
16
|
-
params: GetBalanceParameters
|
|
17
|
-
): Promise<GetBalanceReturnType> {
|
|
18
|
-
const data = await client.request(
|
|
19
|
-
{
|
|
20
|
-
method: 'getBalance',
|
|
21
|
-
params,
|
|
22
|
-
},
|
|
23
|
-
{ dedupe: true }
|
|
24
|
-
)
|
|
25
|
-
return data
|
|
26
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Block } from 'bitcoinjs-lib'
|
|
2
|
-
import {
|
|
3
|
-
type Account,
|
|
4
|
-
BlockNotFoundError,
|
|
5
|
-
type Chain,
|
|
6
|
-
type Client,
|
|
7
|
-
type Transport,
|
|
8
|
-
} from 'viem'
|
|
9
|
-
import type { UTXOSchema } from '../transports/utxo/types.js'
|
|
10
|
-
|
|
11
|
-
export type GetBlockParameters =
|
|
12
|
-
| {
|
|
13
|
-
blockHash: string
|
|
14
|
-
blockNumber?: never
|
|
15
|
-
}
|
|
16
|
-
| {
|
|
17
|
-
blockHash?: never
|
|
18
|
-
blockNumber: number
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type GetBlockReturnType = Block
|
|
22
|
-
|
|
23
|
-
export async function getBlock<
|
|
24
|
-
C extends Chain | undefined,
|
|
25
|
-
A extends Account | undefined = Account | undefined,
|
|
26
|
-
>(
|
|
27
|
-
client: Client<Transport, C, A, UTXOSchema>,
|
|
28
|
-
{ blockHash, blockNumber }: GetBlockParameters
|
|
29
|
-
): Promise<GetBlockReturnType> {
|
|
30
|
-
let blockHex: string | undefined
|
|
31
|
-
try {
|
|
32
|
-
let _blockHash = blockHash
|
|
33
|
-
if (!_blockHash && blockNumber) {
|
|
34
|
-
_blockHash = await client.request(
|
|
35
|
-
{
|
|
36
|
-
method: 'getblockhash',
|
|
37
|
-
params: [blockNumber],
|
|
38
|
-
},
|
|
39
|
-
{ dedupe: true }
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
if (_blockHash) {
|
|
43
|
-
blockHex = await client.request(
|
|
44
|
-
{
|
|
45
|
-
method: 'getblock',
|
|
46
|
-
params: [_blockHash, 0],
|
|
47
|
-
},
|
|
48
|
-
{ dedupe: true }
|
|
49
|
-
)
|
|
50
|
-
}
|
|
51
|
-
} catch (_error) {
|
|
52
|
-
throw new BlockNotFoundError({ blockHash, blockNumber } as never)
|
|
53
|
-
}
|
|
54
|
-
if (!blockHex) {
|
|
55
|
-
throw new BlockNotFoundError({ blockHash, blockNumber } as never)
|
|
56
|
-
}
|
|
57
|
-
return Block.fromHex(blockHex)
|
|
58
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Account, Chain, Client, Transport } from 'viem'
|
|
2
|
-
import type { UTXOSchema } from '../transports/utxo/types.js'
|
|
3
|
-
|
|
4
|
-
export type GetBlockCountReturnType = number
|
|
5
|
-
|
|
6
|
-
export async function getBlockCount<
|
|
7
|
-
C extends Chain | undefined,
|
|
8
|
-
A extends Account | undefined = Account | undefined,
|
|
9
|
-
>(
|
|
10
|
-
client: Client<Transport, C, A, UTXOSchema>
|
|
11
|
-
): Promise<GetBlockCountReturnType> {
|
|
12
|
-
const data = await client.request(
|
|
13
|
-
{
|
|
14
|
-
method: 'getblockcount',
|
|
15
|
-
params: [],
|
|
16
|
-
},
|
|
17
|
-
{ dedupe: true }
|
|
18
|
-
)
|
|
19
|
-
return data
|
|
20
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Account,
|
|
3
|
-
BlockNotFoundError,
|
|
4
|
-
type Chain,
|
|
5
|
-
type Client,
|
|
6
|
-
type Transport,
|
|
7
|
-
} from 'viem'
|
|
8
|
-
import type { UTXOSchema } from '../transports/utxo/types.js'
|
|
9
|
-
import type { BlockStats, BlockStatsKeys } from '../types/blockStats.js'
|
|
10
|
-
|
|
11
|
-
export type GetBlockStatsParameters = (
|
|
12
|
-
| {
|
|
13
|
-
blockHash: string
|
|
14
|
-
blockNumber?: never
|
|
15
|
-
}
|
|
16
|
-
| {
|
|
17
|
-
blockHash?: never
|
|
18
|
-
blockNumber: number
|
|
19
|
-
}
|
|
20
|
-
) & {
|
|
21
|
-
stats?: Array<BlockStatsKeys>
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export type GetBlockStatsReturnType = BlockStats
|
|
25
|
-
|
|
26
|
-
export async function getBlockStats<
|
|
27
|
-
C extends Chain | undefined,
|
|
28
|
-
A extends Account | undefined = Account | undefined,
|
|
29
|
-
>(
|
|
30
|
-
client: Client<Transport, C, A, UTXOSchema>,
|
|
31
|
-
{ blockHash, blockNumber, stats }: GetBlockStatsParameters
|
|
32
|
-
): Promise<GetBlockStatsReturnType> {
|
|
33
|
-
const blockHashOrNumber = blockHash || blockNumber
|
|
34
|
-
if (!blockHashOrNumber) {
|
|
35
|
-
throw new BlockNotFoundError({ blockHash, blockNumber } as never)
|
|
36
|
-
}
|
|
37
|
-
try {
|
|
38
|
-
const params: [string | number, Array<BlockStatsKeys>?] = [
|
|
39
|
-
blockHashOrNumber,
|
|
40
|
-
]
|
|
41
|
-
if (stats) {
|
|
42
|
-
params.push(stats)
|
|
43
|
-
}
|
|
44
|
-
const data = await client.request(
|
|
45
|
-
{
|
|
46
|
-
method: 'getblockstats',
|
|
47
|
-
params: params,
|
|
48
|
-
},
|
|
49
|
-
{ dedupe: true }
|
|
50
|
-
)
|
|
51
|
-
return data
|
|
52
|
-
} catch (_error) {
|
|
53
|
-
throw new BlockNotFoundError({ blockHash, blockNumber } as never)
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Account,
|
|
3
|
-
type Chain,
|
|
4
|
-
type Client,
|
|
5
|
-
TransactionNotFoundError,
|
|
6
|
-
type Transport,
|
|
7
|
-
} from 'viem'
|
|
8
|
-
import type { UTXOSchema } from '../transports/utxo/types.js'
|
|
9
|
-
import type { UTXOTransaction } from '../types/transaction.js'
|
|
10
|
-
|
|
11
|
-
export type GetUTXOTransactionParameters = {
|
|
12
|
-
/** The Id of the transaction */
|
|
13
|
-
txId: string
|
|
14
|
-
/** The block in which to look for the transaction */
|
|
15
|
-
blockHash?: string
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export type GetUTXOTransactionReturnType = UTXOTransaction
|
|
19
|
-
|
|
20
|
-
export async function getUTXOTransaction<
|
|
21
|
-
C extends Chain | undefined,
|
|
22
|
-
A extends Account | undefined = Account | undefined,
|
|
23
|
-
>(
|
|
24
|
-
client: Client<Transport, C, A, UTXOSchema>,
|
|
25
|
-
{ txId, blockHash }: GetUTXOTransactionParameters
|
|
26
|
-
): Promise<GetUTXOTransactionReturnType> {
|
|
27
|
-
try {
|
|
28
|
-
const params: [string, boolean, string?] = [txId, true]
|
|
29
|
-
if (blockHash) {
|
|
30
|
-
params.push(blockHash)
|
|
31
|
-
}
|
|
32
|
-
const data = await client.request({
|
|
33
|
-
method: 'getrawtransaction',
|
|
34
|
-
params: params,
|
|
35
|
-
})
|
|
36
|
-
return data
|
|
37
|
-
} catch (_error) {
|
|
38
|
-
throw new TransactionNotFoundError({
|
|
39
|
-
blockHash: blockHash as never,
|
|
40
|
-
hash: txId as never,
|
|
41
|
-
})
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { Account, Chain, Client, Transport } from 'viem'
|
|
2
|
-
import type { UTXOSchema } from '../transports/utxo/types.js'
|
|
3
|
-
|
|
4
|
-
export type SendUTXOTransactionParameters = {
|
|
5
|
-
/** The hex string of the raw transaction. */
|
|
6
|
-
hex: string
|
|
7
|
-
/** Rejects transactions whose fee rate is higher than the specified value, expressed in BTC/kB. Set to 0 to accept any fee rate. Default = 0.10 */
|
|
8
|
-
maxFeeRate?: number
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export type SendUTXOTransactionReturnType = string
|
|
12
|
-
|
|
13
|
-
export async function sendUTXOTransaction<
|
|
14
|
-
C extends Chain | undefined,
|
|
15
|
-
A extends Account | undefined = Account | undefined,
|
|
16
|
-
>(
|
|
17
|
-
client: Client<Transport, C, A, UTXOSchema>,
|
|
18
|
-
{ hex, maxFeeRate }: SendUTXOTransactionParameters
|
|
19
|
-
): Promise<SendUTXOTransactionReturnType> {
|
|
20
|
-
const params: [string, number?] = [hex]
|
|
21
|
-
if (maxFeeRate) {
|
|
22
|
-
params.push(maxFeeRate)
|
|
23
|
-
}
|
|
24
|
-
const data = await client.request({
|
|
25
|
-
method: 'sendrawtransaction',
|
|
26
|
-
params: params,
|
|
27
|
-
})
|
|
28
|
-
return data
|
|
29
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Account, Chain, Client, Transport } from 'viem'
|
|
2
|
-
import type {
|
|
3
|
-
SignPsbtParameters,
|
|
4
|
-
SignPsbtReturnType,
|
|
5
|
-
UTXOWalletSchema,
|
|
6
|
-
} from '../clients/types.js'
|
|
7
|
-
|
|
8
|
-
export async function signPsbt<
|
|
9
|
-
C extends Chain | undefined,
|
|
10
|
-
A extends Account | undefined = Account | undefined,
|
|
11
|
-
>(
|
|
12
|
-
client: Client<Transport, C, A, UTXOWalletSchema>,
|
|
13
|
-
params: SignPsbtParameters
|
|
14
|
-
): Promise<SignPsbtReturnType> {
|
|
15
|
-
const data = await client.request(
|
|
16
|
-
{
|
|
17
|
-
method: 'signPsbt',
|
|
18
|
-
params: params,
|
|
19
|
-
},
|
|
20
|
-
{ dedupe: true }
|
|
21
|
-
)
|
|
22
|
-
return data
|
|
23
|
-
}
|