@bigmi/core 0.8.0 → 0.9.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/CHANGELOG.md +17 -0
- package/README.md +2 -2
- package/dist/cjs/actions/getBalance.d.ts +2 -2
- package/dist/cjs/actions/getBalance.js.map +1 -1
- package/dist/cjs/actions/getBlock.d.ts +1 -5
- package/dist/cjs/actions/getBlock.js +0 -1
- package/dist/cjs/actions/getBlock.js.map +1 -1
- package/dist/cjs/actions/getBlockCount.d.ts +0 -1
- package/dist/cjs/actions/getBlockCount.js.map +1 -1
- package/dist/cjs/actions/getBlockStats.d.ts +1 -6
- package/dist/cjs/actions/getBlockStats.js.map +1 -1
- package/dist/cjs/actions/getTransactionFee.d.ts +1 -4
- package/dist/cjs/actions/getTransactionFee.js.map +1 -1
- package/dist/cjs/actions/getTransactions.d.ts +1 -7
- package/dist/cjs/actions/getTransactions.js.map +1 -1
- package/dist/cjs/actions/getUTXOTransaction.d.ts +4 -6
- package/dist/cjs/actions/getUTXOTransaction.js.map +1 -1
- package/dist/cjs/actions/getUTXOs.d.ts +1 -5
- package/dist/cjs/actions/getUTXOs.js.map +1 -1
- package/dist/cjs/actions/getXPubAddresses.d.ts +22 -22
- package/dist/cjs/actions/getXPubAddresses.js.map +1 -1
- package/dist/cjs/actions/sendUTXOTransaction.d.ts +4 -6
- package/dist/cjs/actions/sendUTXOTransaction.js.map +1 -1
- package/dist/cjs/actions/signPsbt.d.ts +0 -1
- package/dist/cjs/actions/signPsbt.js.map +1 -1
- package/dist/cjs/actions/waitForTransaction.d.ts +43 -49
- package/dist/cjs/actions/waitForTransaction.js +0 -1
- package/dist/cjs/actions/waitForTransaction.js.map +1 -1
- package/dist/cjs/actions/watchBlockNumber.d.ts +14 -16
- package/dist/cjs/actions/watchBlockNumber.js.map +1 -1
- package/dist/cjs/chains/bitcoin.d.ts +0 -1
- package/dist/cjs/chains/bitcoin.js +3 -3
- package/dist/cjs/chains/bitcoin.js.map +1 -1
- package/dist/cjs/chains/defineChain.d.ts +0 -1
- package/dist/cjs/chains/defineChain.js.map +1 -1
- package/dist/cjs/chains/signet.d.ts +0 -1
- package/dist/cjs/chains/signet.js +3 -3
- package/dist/cjs/chains/signet.js.map +1 -1
- package/dist/cjs/clients/decorators/public.d.ts +0 -1
- package/dist/cjs/clients/decorators/public.js.map +1 -1
- package/dist/cjs/clients/decorators/wallet.d.ts +2 -3
- package/dist/cjs/clients/decorators/wallet.js.map +1 -1
- package/dist/cjs/errors/address.d.ts +1 -4
- package/dist/cjs/errors/address.js.map +1 -1
- package/dist/cjs/errors/base.js.map +1 -1
- package/dist/cjs/errors/block.d.ts +1 -5
- package/dist/cjs/errors/block.js.map +1 -1
- package/dist/cjs/errors/provider.d.ts +0 -1
- package/dist/cjs/errors/provider.js.map +1 -1
- package/dist/cjs/errors/request.d.ts +5 -28
- package/dist/cjs/errors/request.js.map +1 -1
- package/dist/cjs/errors/rpc.d.ts +23 -24
- package/dist/cjs/errors/rpc.js +3 -3
- package/dist/cjs/errors/rpc.js.map +1 -1
- package/dist/cjs/errors/transaction.d.ts +3 -14
- package/dist/cjs/errors/transaction.js.map +1 -1
- package/dist/cjs/errors/transport.d.ts +2 -10
- package/dist/cjs/errors/transport.js.map +1 -1
- package/dist/cjs/errors/utils.d.ts +0 -1
- package/dist/cjs/errors/utxo.d.ts +1 -6
- package/dist/cjs/errors/utxo.js.map +1 -1
- package/dist/cjs/factories/createClient.d.ts +49 -30
- package/dist/cjs/factories/createClient.js.map +1 -1
- package/dist/cjs/factories/createTransport.d.ts +3 -13
- package/dist/cjs/factories/createTransport.js.map +1 -1
- package/dist/cjs/test/utils.js.map +1 -1
- package/dist/cjs/transports/ankr/ankr.d.ts +0 -1
- package/dist/cjs/transports/ankr/ankr.js.map +1 -1
- package/dist/cjs/transports/ankr/getBalance.d.ts +0 -1
- package/dist/cjs/transports/ankr/getBalance.js +2 -2
- package/dist/cjs/transports/ankr/getBalance.js.map +1 -1
- package/dist/cjs/transports/ankr/getTransactionFee.d.ts +0 -1
- package/dist/cjs/transports/ankr/getTransactionFee.js.map +1 -1
- package/dist/cjs/transports/ankr/getTransactions.d.ts +0 -1
- package/dist/cjs/transports/ankr/getTransactions.js.map +1 -1
- package/dist/cjs/transports/ankr/methods.d.ts +0 -1
- package/dist/cjs/transports/ankr/methods.js.map +1 -1
- package/dist/cjs/transports/ankr/utils.d.ts +0 -1
- package/dist/cjs/transports/ankr/utils.js.map +1 -1
- package/dist/cjs/transports/blockchair/blockchair.d.ts +0 -1
- package/dist/cjs/transports/blockchair/blockchair.js.map +1 -1
- package/dist/cjs/transports/blockchair/getBalance.d.ts +0 -1
- package/dist/cjs/transports/blockchair/getBalance.js +2 -2
- package/dist/cjs/transports/blockchair/getBalance.js.map +1 -1
- package/dist/cjs/transports/blockchair/getTransactionFee.d.ts +0 -1
- package/dist/cjs/transports/blockchair/getTransactionFee.js +2 -2
- package/dist/cjs/transports/blockchair/getTransactionFee.js.map +1 -1
- package/dist/cjs/transports/blockchair/getUTXOs.d.ts +0 -1
- package/dist/cjs/transports/blockchair/getUTXOs.js +2 -2
- package/dist/cjs/transports/blockchair/getUTXOs.js.map +1 -1
- package/dist/cjs/transports/blockchair/getXPubAddresses.d.ts +0 -1
- package/dist/cjs/transports/blockchair/getXPubAddresses.js +2 -2
- package/dist/cjs/transports/blockchair/getXPubAddresses.js.map +1 -1
- package/dist/cjs/transports/blockchair/methods.d.ts +0 -1
- package/dist/cjs/transports/blockchair/methods.js.map +1 -1
- package/dist/cjs/transports/blockcypher/blockcypher.d.ts +0 -1
- package/dist/cjs/transports/blockcypher/blockcypher.js.map +1 -1
- package/dist/cjs/transports/blockcypher/getBalance.d.ts +0 -1
- package/dist/cjs/transports/blockcypher/getBalance.js.map +1 -1
- package/dist/cjs/transports/blockcypher/getTransactionFee.d.ts +0 -1
- package/dist/cjs/transports/blockcypher/getTransactionFee.js.map +1 -1
- package/dist/cjs/transports/blockcypher/getUTXOs.d.ts +0 -1
- package/dist/cjs/transports/blockcypher/getUTXOs.js.map +1 -1
- package/dist/cjs/transports/blockcypher/methods.d.ts +0 -1
- package/dist/cjs/transports/blockcypher/methods.js.map +1 -1
- package/dist/cjs/transports/blockcypher/utils.d.ts +0 -1
- package/dist/cjs/transports/blockcypher/utils.js +3 -3
- package/dist/cjs/transports/blockcypher/utils.js.map +1 -1
- package/dist/cjs/transports/custom.d.ts +11 -7
- package/dist/cjs/transports/custom.js.map +1 -1
- package/dist/cjs/transports/fallback.d.ts +32 -36
- package/dist/cjs/transports/fallback.js +2 -2
- package/dist/cjs/transports/fallback.js.map +1 -1
- package/dist/cjs/transports/getHttpRpcClient.d.ts +17 -9
- package/dist/cjs/transports/getHttpRpcClient.js.map +1 -1
- package/dist/cjs/transports/getRpcProviderMethods.d.ts +0 -1
- package/dist/cjs/transports/getRpcProviderMethods.js.map +1 -1
- package/dist/cjs/transports/http.d.ts +31 -20
- package/dist/cjs/transports/http.js.map +1 -1
- package/dist/cjs/transports/mempool/getBalance.d.ts +0 -1
- package/dist/cjs/transports/mempool/getBalance.js.map +1 -1
- package/dist/cjs/transports/mempool/getTransactionFee.d.ts +0 -1
- package/dist/cjs/transports/mempool/getTransactionFee.js.map +1 -1
- package/dist/cjs/transports/mempool/getTransactions.d.ts +0 -1
- package/dist/cjs/transports/mempool/getTransactions.js.map +1 -1
- package/dist/cjs/transports/mempool/mempool.d.ts +0 -1
- package/dist/cjs/transports/mempool/mempool.js.map +1 -1
- package/dist/cjs/transports/mempool/methods.d.ts +0 -1
- package/dist/cjs/transports/mempool/methods.js.map +1 -1
- package/dist/cjs/transports/mempool/utils.d.ts +0 -1
- package/dist/cjs/transports/mempool/utils.js.map +1 -1
- package/dist/cjs/transports/types.d.ts +17 -15
- package/dist/cjs/transports/types.js.map +1 -1
- package/dist/cjs/transports/utxo.d.ts +0 -1
- package/dist/cjs/transports/utxo.js.map +1 -1
- package/dist/cjs/types/account.d.ts +0 -1
- package/dist/cjs/types/address.d.ts +0 -1
- package/dist/cjs/types/address.js.map +1 -1
- package/dist/cjs/types/block.d.ts +17 -17
- package/dist/cjs/types/chain.d.ts +20 -9
- package/dist/cjs/types/chain.js.map +1 -1
- package/dist/cjs/types/client.d.ts +40 -25
- package/dist/cjs/types/request.d.ts +12 -8
- package/dist/cjs/types/transport.d.ts +16 -11
- package/dist/cjs/types/utils.d.ts +31 -31
- package/dist/cjs/types/xpub.d.ts +0 -1
- package/dist/cjs/utils/buildRequest.d.ts +0 -1
- package/dist/cjs/utils/buildRequest.js +3 -3
- package/dist/cjs/utils/buildRequest.js.map +1 -1
- package/dist/cjs/utils/cancelTransaction.d.ts +0 -1
- package/dist/cjs/utils/cancelTransaction.js +0 -1
- package/dist/cjs/utils/cancelTransaction.js.map +1 -1
- package/dist/cjs/utils/converter.js.map +1 -1
- package/dist/cjs/utils/createBatchScheduler.d.ts +1 -8
- package/dist/cjs/utils/createBatchScheduler.js +1 -1
- package/dist/cjs/utils/createBatchScheduler.js.map +1 -1
- package/dist/cjs/utils/deepEqual.js.map +1 -1
- package/dist/cjs/utils/getAction.d.ts +6 -7
- package/dist/cjs/utils/getAction.js.map +1 -1
- package/dist/cjs/utils/getAddressInfo.d.ts +0 -1
- package/dist/cjs/utils/getAddressInfo.js +26 -26
- package/dist/cjs/utils/getAddressInfo.js.map +1 -1
- package/dist/cjs/utils/idCache.js.map +1 -1
- package/dist/cjs/utils/isAddress.d.ts +0 -1
- package/dist/cjs/utils/isAddress.js.map +1 -1
- package/dist/cjs/utils/lru.d.ts +4 -4
- package/dist/cjs/utils/lru.js.map +1 -1
- package/dist/cjs/utils/modifyFee.d.ts +0 -1
- package/dist/cjs/utils/modifyFee.js +0 -1
- package/dist/cjs/utils/modifyFee.js.map +1 -1
- package/dist/cjs/utils/observe.d.ts +4 -5
- package/dist/cjs/utils/observe.js +2 -2
- package/dist/cjs/utils/observe.js.map +1 -1
- package/dist/cjs/utils/parseAccount.d.ts +0 -1
- package/dist/cjs/utils/parseAccount.js.map +1 -1
- package/dist/cjs/utils/poll.d.ts +4 -10
- package/dist/cjs/utils/poll.js.map +1 -1
- package/dist/cjs/utils/retryUntil.d.ts +17 -15
- package/dist/cjs/utils/retryUntil.js.map +1 -1
- package/dist/cjs/utils/sleep.js.map +1 -1
- package/dist/cjs/utils/stringify.d.ts +0 -1
- package/dist/cjs/utils/stringify.js.map +1 -1
- package/dist/cjs/utils/uid.js.map +1 -1
- package/dist/cjs/utils/url.js.map +1 -1
- package/dist/cjs/utils/wait.js.map +1 -1
- package/dist/cjs/utils/withDedupe.d.ts +1 -5
- package/dist/cjs/utils/withDedupe.js +1 -1
- package/dist/cjs/utils/withDedupe.js.map +1 -1
- package/dist/cjs/utils/withResolvers.js.map +1 -1
- package/dist/cjs/utils/withRetry.d.ts +2 -10
- package/dist/cjs/utils/withRetry.js.map +1 -1
- package/dist/cjs/utils/withTimeout.d.ts +2 -9
- package/dist/cjs/utils/withTimeout.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/actions/getBalance.d.ts +2 -2
- package/dist/esm/actions/getBalance.d.ts.map +1 -1
- package/dist/esm/actions/getBalance.js.map +1 -1
- package/dist/esm/actions/getBlock.d.ts +1 -5
- package/dist/esm/actions/getBlock.d.ts.map +1 -1
- package/dist/esm/actions/getBlock.js.map +1 -1
- package/dist/esm/actions/getBlockCount.d.ts +0 -1
- package/dist/esm/actions/getBlockCount.d.ts.map +1 -1
- package/dist/esm/actions/getBlockCount.js.map +1 -1
- package/dist/esm/actions/getBlockStats.d.ts +1 -6
- package/dist/esm/actions/getBlockStats.d.ts.map +1 -1
- package/dist/esm/actions/getBlockStats.js.map +1 -1
- package/dist/esm/actions/getTransactionFee.d.ts +1 -4
- package/dist/esm/actions/getTransactionFee.d.ts.map +1 -1
- package/dist/esm/actions/getTransactionFee.js.map +1 -1
- package/dist/esm/actions/getTransactions.d.ts +1 -7
- package/dist/esm/actions/getTransactions.d.ts.map +1 -1
- package/dist/esm/actions/getTransactions.js.map +1 -1
- package/dist/esm/actions/getUTXOTransaction.d.ts +4 -6
- package/dist/esm/actions/getUTXOTransaction.d.ts.map +1 -1
- package/dist/esm/actions/getUTXOTransaction.js.map +1 -1
- package/dist/esm/actions/getUTXOs.d.ts +1 -5
- package/dist/esm/actions/getUTXOs.d.ts.map +1 -1
- package/dist/esm/actions/getUTXOs.js.map +1 -1
- package/dist/esm/actions/getXPubAddresses.d.ts +22 -22
- package/dist/esm/actions/getXPubAddresses.d.ts.map +1 -1
- package/dist/esm/actions/getXPubAddresses.js.map +1 -1
- package/dist/esm/actions/sendUTXOTransaction.d.ts +4 -6
- package/dist/esm/actions/sendUTXOTransaction.d.ts.map +1 -1
- package/dist/esm/actions/sendUTXOTransaction.js.map +1 -1
- package/dist/esm/actions/signPsbt.d.ts +0 -1
- package/dist/esm/actions/signPsbt.d.ts.map +1 -1
- package/dist/esm/actions/signPsbt.js.map +1 -1
- package/dist/esm/actions/waitForTransaction.d.ts +43 -49
- package/dist/esm/actions/waitForTransaction.d.ts.map +1 -1
- package/dist/esm/actions/waitForTransaction.js.map +1 -1
- package/dist/esm/actions/watchBlockNumber.d.ts +14 -16
- package/dist/esm/actions/watchBlockNumber.d.ts.map +1 -1
- package/dist/esm/actions/watchBlockNumber.js.map +1 -1
- package/dist/esm/chains/bitcoin.d.ts +0 -1
- package/dist/esm/chains/bitcoin.d.ts.map +1 -1
- package/dist/esm/chains/bitcoin.js +3 -3
- package/dist/esm/chains/bitcoin.js.map +1 -1
- package/dist/esm/chains/defineChain.d.ts +0 -1
- package/dist/esm/chains/defineChain.d.ts.map +1 -1
- package/dist/esm/chains/defineChain.js.map +1 -1
- package/dist/esm/chains/signet.d.ts +0 -1
- package/dist/esm/chains/signet.d.ts.map +1 -1
- package/dist/esm/chains/signet.js +3 -3
- package/dist/esm/chains/signet.js.map +1 -1
- package/dist/esm/clients/decorators/public.d.ts +0 -1
- package/dist/esm/clients/decorators/public.d.ts.map +1 -1
- package/dist/esm/clients/decorators/public.js.map +1 -1
- package/dist/esm/clients/decorators/wallet.d.ts +2 -3
- package/dist/esm/clients/decorators/wallet.d.ts.map +1 -1
- package/dist/esm/clients/decorators/wallet.js.map +1 -1
- package/dist/esm/errors/address.d.ts +1 -4
- package/dist/esm/errors/address.d.ts.map +1 -1
- package/dist/esm/errors/address.js.map +1 -1
- package/dist/esm/errors/base.d.ts.map +1 -1
- package/dist/esm/errors/base.js.map +1 -1
- package/dist/esm/errors/block.d.ts +1 -5
- package/dist/esm/errors/block.d.ts.map +1 -1
- package/dist/esm/errors/block.js.map +1 -1
- package/dist/esm/errors/provider.d.ts +0 -1
- package/dist/esm/errors/provider.d.ts.map +1 -1
- package/dist/esm/errors/provider.js.map +1 -1
- package/dist/esm/errors/request.d.ts +5 -28
- package/dist/esm/errors/request.d.ts.map +1 -1
- package/dist/esm/errors/request.js.map +1 -1
- package/dist/esm/errors/rpc.d.ts +23 -24
- package/dist/esm/errors/rpc.d.ts.map +1 -1
- package/dist/esm/errors/rpc.js +3 -3
- package/dist/esm/errors/rpc.js.map +1 -1
- package/dist/esm/errors/transaction.d.ts +3 -14
- package/dist/esm/errors/transaction.d.ts.map +1 -1
- package/dist/esm/errors/transaction.js.map +1 -1
- package/dist/esm/errors/transport.d.ts +2 -10
- package/dist/esm/errors/transport.d.ts.map +1 -1
- package/dist/esm/errors/transport.js.map +1 -1
- package/dist/esm/errors/utils.d.ts +0 -1
- package/dist/esm/errors/utils.d.ts.map +1 -1
- package/dist/esm/errors/utxo.d.ts +1 -6
- package/dist/esm/errors/utxo.d.ts.map +1 -1
- package/dist/esm/errors/utxo.js.map +1 -1
- package/dist/esm/factories/createClient.d.ts +49 -30
- package/dist/esm/factories/createClient.d.ts.map +1 -1
- package/dist/esm/factories/createClient.js.map +1 -1
- package/dist/esm/factories/createTransport.d.ts +3 -13
- package/dist/esm/factories/createTransport.d.ts.map +1 -1
- package/dist/esm/factories/createTransport.js.map +1 -1
- package/dist/esm/test/utils.d.ts.map +1 -1
- package/dist/esm/test/utils.js.map +1 -1
- package/dist/esm/transports/ankr/ankr.d.ts +0 -1
- package/dist/esm/transports/ankr/ankr.d.ts.map +1 -1
- package/dist/esm/transports/ankr/ankr.js.map +1 -1
- package/dist/esm/transports/ankr/ankr.types.d.ts.map +1 -1
- package/dist/esm/transports/ankr/getBalance.d.ts +0 -1
- package/dist/esm/transports/ankr/getBalance.d.ts.map +1 -1
- package/dist/esm/transports/ankr/getBalance.js +2 -2
- package/dist/esm/transports/ankr/getBalance.js.map +1 -1
- package/dist/esm/transports/ankr/getTransactionFee.d.ts +0 -1
- package/dist/esm/transports/ankr/getTransactionFee.d.ts.map +1 -1
- package/dist/esm/transports/ankr/getTransactionFee.js.map +1 -1
- package/dist/esm/transports/ankr/getTransactions.d.ts +0 -1
- package/dist/esm/transports/ankr/getTransactions.d.ts.map +1 -1
- package/dist/esm/transports/ankr/getTransactions.js.map +1 -1
- package/dist/esm/transports/ankr/methods.d.ts +0 -1
- package/dist/esm/transports/ankr/methods.d.ts.map +1 -1
- package/dist/esm/transports/ankr/methods.js.map +1 -1
- package/dist/esm/transports/ankr/utils.d.ts +0 -1
- package/dist/esm/transports/ankr/utils.d.ts.map +1 -1
- package/dist/esm/transports/ankr/utils.js.map +1 -1
- package/dist/esm/transports/blockchair/blockchair.d.ts +0 -1
- package/dist/esm/transports/blockchair/blockchair.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/blockchair.js.map +1 -1
- package/dist/esm/transports/blockchair/blockchair.types.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/getBalance.d.ts +0 -1
- package/dist/esm/transports/blockchair/getBalance.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/getBalance.js +2 -2
- package/dist/esm/transports/blockchair/getBalance.js.map +1 -1
- package/dist/esm/transports/blockchair/getTransactionFee.d.ts +0 -1
- package/dist/esm/transports/blockchair/getTransactionFee.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/getTransactionFee.js +2 -2
- package/dist/esm/transports/blockchair/getTransactionFee.js.map +1 -1
- package/dist/esm/transports/blockchair/getUTXOs.d.ts +0 -1
- package/dist/esm/transports/blockchair/getUTXOs.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/getUTXOs.js +2 -2
- package/dist/esm/transports/blockchair/getUTXOs.js.map +1 -1
- package/dist/esm/transports/blockchair/getXPubAddresses.d.ts +0 -1
- package/dist/esm/transports/blockchair/getXPubAddresses.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/getXPubAddresses.js +2 -2
- package/dist/esm/transports/blockchair/getXPubAddresses.js.map +1 -1
- package/dist/esm/transports/blockchair/methods.d.ts +0 -1
- package/dist/esm/transports/blockchair/methods.d.ts.map +1 -1
- package/dist/esm/transports/blockchair/methods.js.map +1 -1
- package/dist/esm/transports/blockcypher/blockcypher.d.ts +0 -1
- package/dist/esm/transports/blockcypher/blockcypher.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/blockcypher.js.map +1 -1
- package/dist/esm/transports/blockcypher/blockcypher.types.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/getBalance.d.ts +0 -1
- package/dist/esm/transports/blockcypher/getBalance.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/getBalance.js.map +1 -1
- package/dist/esm/transports/blockcypher/getTransactionFee.d.ts +0 -1
- package/dist/esm/transports/blockcypher/getTransactionFee.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/getTransactionFee.js.map +1 -1
- package/dist/esm/transports/blockcypher/getUTXOs.d.ts +0 -1
- package/dist/esm/transports/blockcypher/getUTXOs.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/getUTXOs.js.map +1 -1
- package/dist/esm/transports/blockcypher/methods.d.ts +0 -1
- package/dist/esm/transports/blockcypher/methods.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/methods.js.map +1 -1
- package/dist/esm/transports/blockcypher/utils.d.ts +0 -1
- package/dist/esm/transports/blockcypher/utils.d.ts.map +1 -1
- package/dist/esm/transports/blockcypher/utils.js +3 -3
- package/dist/esm/transports/blockcypher/utils.js.map +1 -1
- package/dist/esm/transports/custom.d.ts +11 -7
- package/dist/esm/transports/custom.d.ts.map +1 -1
- package/dist/esm/transports/custom.js.map +1 -1
- package/dist/esm/transports/fallback.d.ts +32 -36
- package/dist/esm/transports/fallback.d.ts.map +1 -1
- package/dist/esm/transports/fallback.js +2 -2
- package/dist/esm/transports/fallback.js.map +1 -1
- package/dist/esm/transports/getHttpRpcClient.d.ts +17 -9
- package/dist/esm/transports/getHttpRpcClient.d.ts.map +1 -1
- package/dist/esm/transports/getHttpRpcClient.js.map +1 -1
- package/dist/esm/transports/getRpcProviderMethods.d.ts +0 -1
- package/dist/esm/transports/getRpcProviderMethods.d.ts.map +1 -1
- package/dist/esm/transports/getRpcProviderMethods.js.map +1 -1
- package/dist/esm/transports/http.d.ts +31 -20
- package/dist/esm/transports/http.d.ts.map +1 -1
- package/dist/esm/transports/http.js.map +1 -1
- package/dist/esm/transports/mempool/getBalance.d.ts +0 -1
- package/dist/esm/transports/mempool/getBalance.d.ts.map +1 -1
- package/dist/esm/transports/mempool/getBalance.js.map +1 -1
- package/dist/esm/transports/mempool/getTransactionFee.d.ts +0 -1
- package/dist/esm/transports/mempool/getTransactionFee.d.ts.map +1 -1
- package/dist/esm/transports/mempool/getTransactionFee.js.map +1 -1
- package/dist/esm/transports/mempool/getTransactions.d.ts +0 -1
- package/dist/esm/transports/mempool/getTransactions.d.ts.map +1 -1
- package/dist/esm/transports/mempool/getTransactions.js.map +1 -1
- package/dist/esm/transports/mempool/mempool.d.ts +0 -1
- package/dist/esm/transports/mempool/mempool.d.ts.map +1 -1
- package/dist/esm/transports/mempool/mempool.js.map +1 -1
- package/dist/esm/transports/mempool/mempool.types.d.ts.map +1 -1
- package/dist/esm/transports/mempool/methods.d.ts +0 -1
- package/dist/esm/transports/mempool/methods.d.ts.map +1 -1
- package/dist/esm/transports/mempool/methods.js.map +1 -1
- package/dist/esm/transports/mempool/utils.d.ts +0 -1
- package/dist/esm/transports/mempool/utils.d.ts.map +1 -1
- package/dist/esm/transports/mempool/utils.js.map +1 -1
- package/dist/esm/transports/types.d.ts +17 -15
- package/dist/esm/transports/types.d.ts.map +1 -1
- package/dist/esm/transports/types.js.map +1 -1
- package/dist/esm/transports/utxo.d.ts +0 -1
- package/dist/esm/transports/utxo.d.ts.map +1 -1
- package/dist/esm/transports/utxo.js.map +1 -1
- package/dist/esm/types/account.d.ts +0 -1
- package/dist/esm/types/account.d.ts.map +1 -1
- package/dist/esm/types/address.d.ts +0 -1
- package/dist/esm/types/address.d.ts.map +1 -1
- package/dist/esm/types/address.js.map +1 -1
- package/dist/esm/types/block.d.ts +17 -17
- package/dist/esm/types/block.d.ts.map +1 -1
- package/dist/esm/types/blockStats.d.ts.map +1 -1
- package/dist/esm/types/chain.d.ts +20 -9
- package/dist/esm/types/chain.d.ts.map +1 -1
- package/dist/esm/types/chain.js.map +1 -1
- package/dist/esm/types/client.d.ts +40 -25
- package/dist/esm/types/client.d.ts.map +1 -1
- package/dist/esm/types/hash.d.ts.map +1 -1
- package/dist/esm/types/request.d.ts +12 -8
- package/dist/esm/types/request.d.ts.map +1 -1
- package/dist/esm/types/rpc.d.ts.map +1 -1
- package/dist/esm/types/transaction.d.ts.map +1 -1
- package/dist/esm/types/transport.d.ts +16 -11
- package/dist/esm/types/transport.d.ts.map +1 -1
- package/dist/esm/types/utils.d.ts +31 -31
- package/dist/esm/types/utils.d.ts.map +1 -1
- package/dist/esm/types/xpub.d.ts +0 -1
- package/dist/esm/types/xpub.d.ts.map +1 -1
- package/dist/esm/utils/buildRequest.d.ts +0 -1
- package/dist/esm/utils/buildRequest.d.ts.map +1 -1
- package/dist/esm/utils/buildRequest.js +4 -4
- package/dist/esm/utils/buildRequest.js.map +1 -1
- package/dist/esm/utils/cancelTransaction.d.ts +0 -1
- package/dist/esm/utils/cancelTransaction.d.ts.map +1 -1
- package/dist/esm/utils/cancelTransaction.js.map +1 -1
- package/dist/esm/utils/converter.d.ts.map +1 -1
- package/dist/esm/utils/converter.js.map +1 -1
- package/dist/esm/utils/createBatchScheduler.d.ts +1 -8
- package/dist/esm/utils/createBatchScheduler.d.ts.map +1 -1
- package/dist/esm/utils/createBatchScheduler.js +1 -1
- package/dist/esm/utils/createBatchScheduler.js.map +1 -1
- package/dist/esm/utils/deepEqual.d.ts.map +1 -1
- package/dist/esm/utils/deepEqual.js.map +1 -1
- package/dist/esm/utils/getAction.d.ts +6 -7
- package/dist/esm/utils/getAction.d.ts.map +1 -1
- package/dist/esm/utils/getAction.js.map +1 -1
- package/dist/esm/utils/getAddressInfo.d.ts +0 -1
- package/dist/esm/utils/getAddressInfo.d.ts.map +1 -1
- package/dist/esm/utils/getAddressInfo.js +25 -25
- package/dist/esm/utils/getAddressInfo.js.map +1 -1
- package/dist/esm/utils/idCache.d.ts.map +1 -1
- package/dist/esm/utils/idCache.js.map +1 -1
- package/dist/esm/utils/isAddress.d.ts +0 -1
- package/dist/esm/utils/isAddress.d.ts.map +1 -1
- package/dist/esm/utils/isAddress.js.map +1 -1
- package/dist/esm/utils/lru.d.ts +4 -4
- package/dist/esm/utils/lru.d.ts.map +1 -1
- package/dist/esm/utils/lru.js.map +1 -1
- package/dist/esm/utils/modifyFee.d.ts +0 -1
- package/dist/esm/utils/modifyFee.d.ts.map +1 -1
- package/dist/esm/utils/modifyFee.js.map +1 -1
- package/dist/esm/utils/observe.d.ts +4 -5
- package/dist/esm/utils/observe.d.ts.map +1 -1
- package/dist/esm/utils/observe.js +2 -2
- package/dist/esm/utils/observe.js.map +1 -1
- package/dist/esm/utils/parseAccount.d.ts +0 -1
- package/dist/esm/utils/parseAccount.d.ts.map +1 -1
- package/dist/esm/utils/parseAccount.js.map +1 -1
- package/dist/esm/utils/poll.d.ts +4 -10
- package/dist/esm/utils/poll.d.ts.map +1 -1
- package/dist/esm/utils/poll.js.map +1 -1
- package/dist/esm/utils/retryUntil.d.ts +17 -15
- package/dist/esm/utils/retryUntil.d.ts.map +1 -1
- package/dist/esm/utils/retryUntil.js.map +1 -1
- package/dist/esm/utils/sleep.d.ts.map +1 -1
- package/dist/esm/utils/sleep.js.map +1 -1
- package/dist/esm/utils/stringify.d.ts +0 -1
- package/dist/esm/utils/stringify.d.ts.map +1 -1
- package/dist/esm/utils/stringify.js.map +1 -1
- package/dist/esm/utils/uid.d.ts.map +1 -1
- package/dist/esm/utils/uid.js.map +1 -1
- package/dist/esm/utils/url.d.ts.map +1 -1
- package/dist/esm/utils/url.js.map +1 -1
- package/dist/esm/utils/wait.d.ts.map +1 -1
- package/dist/esm/utils/wait.js.map +1 -1
- package/dist/esm/utils/withDedupe.d.ts +1 -5
- package/dist/esm/utils/withDedupe.d.ts.map +1 -1
- package/dist/esm/utils/withDedupe.js +1 -1
- package/dist/esm/utils/withDedupe.js.map +1 -1
- package/dist/esm/utils/withResolvers.d.ts.map +1 -1
- package/dist/esm/utils/withResolvers.js.map +1 -1
- package/dist/esm/utils/withRetry.d.ts +2 -10
- package/dist/esm/utils/withRetry.d.ts.map +1 -1
- package/dist/esm/utils/withRetry.js.map +1 -1
- package/dist/esm/utils/withTimeout.d.ts +2 -9
- package/dist/esm/utils/withTimeout.d.ts.map +1 -1
- package/dist/esm/utils/withTimeout.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.d.ts.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/package.json +3 -2
- package/src/version.ts +1 -1
- package/dist/cjs/transports/__mocks__/getTransactionFee.d.ts +0 -7
- package/dist/cjs/transports/__mocks__/getTransactionFee.js +0 -11
- package/dist/cjs/transports/__mocks__/getTransactionFee.js.map +0 -1
- package/dist/esm/transports/__mocks__/getTransactionFee.d.ts +0 -7
- package/dist/esm/transports/__mocks__/getTransactionFee.d.ts.map +0 -1
- package/dist/esm/transports/__mocks__/getTransactionFee.js +0 -8
- package/dist/esm/transports/__mocks__/getTransactionFee.js.map +0 -1
|
@@ -3,31 +3,42 @@ import { ErrorType } from "../errors/utils.js";
|
|
|
3
3
|
import { BtcRpcRequestFn, RpcSchema } from "../types/request.js";
|
|
4
4
|
import { CreateTransportErrorType, Transport, TransportConfig } from "../types/transport.js";
|
|
5
5
|
import { UrlRequiredErrorType } from "../errors/transport.js";
|
|
6
|
-
|
|
7
6
|
//#region src/transports/http.d.ts
|
|
8
7
|
type HttpTransportConfig<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = {
|
|
9
8
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
* Whether to enable Batch JSON-RPC.
|
|
10
|
+
* @link https://www.jsonrpc.org/specification#batch
|
|
11
|
+
*/
|
|
13
12
|
batch?: boolean | {
|
|
14
|
-
/** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */
|
|
13
|
+
/** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */
|
|
14
|
+
batchSize?: number | undefined;
|
|
15
|
+
/** The maximum number of milliseconds to wait before sending a batch. @default 0 */
|
|
15
16
|
wait?: number | undefined;
|
|
16
17
|
} | undefined;
|
|
17
18
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
fetchOptions?: HttpRpcClientOptions["fetchOptions"] | undefined;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
* Request configuration to pass to `fetch`.
|
|
20
|
+
* @link https://developer.mozilla.org/en-US/docs/Web/API/fetch
|
|
21
|
+
*/
|
|
22
|
+
fetchOptions?: HttpRpcClientOptions["fetchOptions"] | undefined;
|
|
23
|
+
/** A callback to handle the response from `fetch`. */
|
|
24
|
+
onFetchRequest?: HttpRpcClientOptions["onRequest"] | undefined;
|
|
25
|
+
/** A callback to handle the response from `fetch`. */
|
|
26
|
+
onFetchResponse?: HttpRpcClientOptions["onResponse"] | undefined;
|
|
27
|
+
/** The key of the HTTP transport. */
|
|
28
|
+
key?: TransportConfig["key"] | undefined;
|
|
29
|
+
/** Methods to include or exclude from executing RPC requests. */
|
|
30
|
+
methods?: TransportConfig["methods"] | undefined;
|
|
31
|
+
/** The name of the HTTP transport. */
|
|
32
|
+
name?: TransportConfig["name"] | undefined;
|
|
33
|
+
/** Whether to return JSON RPC errors as responses instead of throwing. */
|
|
34
|
+
raw?: raw | boolean | undefined;
|
|
35
|
+
/** The max number of times to retry. */
|
|
36
|
+
retryCount?: TransportConfig["retryCount"] | undefined;
|
|
37
|
+
/** The base delay (in ms) between retries. */
|
|
38
|
+
retryDelay?: TransportConfig["retryDelay"] | undefined;
|
|
39
|
+
/** Typed JSON-RPC schema for the transport. */
|
|
40
|
+
rpcSchema?: rpcSchema | RpcSchema | undefined;
|
|
41
|
+
/** The timeout (in ms) for the HTTP request. Default: 10_000 */
|
|
31
42
|
timeout?: TransportConfig["timeout"] | undefined;
|
|
32
43
|
};
|
|
33
44
|
type HttpTransport<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = Transport<"http", {
|
|
@@ -36,8 +47,8 @@ type HttpTransport<rpcSchema extends RpcSchema | undefined = undefined, raw exte
|
|
|
36
47
|
}, BtcRpcRequestFn<rpcSchema, raw>>;
|
|
37
48
|
type HttpTransportErrorType = CreateTransportErrorType | UrlRequiredErrorType | ErrorType;
|
|
38
49
|
/**
|
|
39
|
-
* @description Creates a HTTP transport that connects to a JSON-RPC API.
|
|
40
|
-
*/
|
|
50
|
+
* @description Creates a HTTP transport that connects to a JSON-RPC API.
|
|
51
|
+
*/
|
|
41
52
|
declare function http<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false>(url?: string | undefined, config?: HttpTransportConfig<rpcSchema, raw>): HttpTransport<rpcSchema, raw>;
|
|
42
53
|
//#endregion
|
|
43
54
|
export { HttpTransport, HttpTransportConfig, HttpTransportErrorType, http };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","names":["UTXOAPISchemaMethods","UrlRequiredError","getHttpRpcClient","createTransport","idCache","createBatchScheduler","RpcRequestError"],"sources":["../../../src/transports/http.ts"],"sourcesContent":["import { RpcRequestError } from '../errors/request.js'\nimport {\n UrlRequiredError,\n type UrlRequiredErrorType,\n} from '../errors/transport.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport { createTransport } from '../factories/createTransport.js'\nimport type { BtcRpcRequestFn, RpcSchema } from '../types/request.js'\nimport type {\n CreateTransportErrorType,\n Transport,\n TransportConfig,\n} from '../types/transport.js'\nimport { createBatchScheduler } from '../utils/createBatchScheduler.js'\nimport { idCache } from '../utils/idCache.js'\nimport {\n getHttpRpcClient,\n type HttpRpcClientOptions,\n type RpcRequest,\n} from './getHttpRpcClient.js'\nimport { UTXOAPISchemaMethods } from './types.js'\n\nexport type HttpTransportConfig<\n rpcSchema extends RpcSchema | undefined = undefined,\n raw extends boolean = false,\n> = {\n /**\n * Whether to enable Batch JSON-RPC.\n * @link https://www.jsonrpc.org/specification#batch\n */\n batch?:\n | boolean\n | {\n /** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */\n batchSize?: number | undefined\n /** The maximum number of milliseconds to wait before sending a batch. @default 0 */\n wait?: number | undefined\n }\n | undefined\n /**\n * Request configuration to pass to `fetch`.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch\n */\n fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined\n /** A callback to handle the response from `fetch`. */\n onFetchRequest?: HttpRpcClientOptions['onRequest'] | undefined\n /** A callback to handle the response from `fetch`. */\n onFetchResponse?: HttpRpcClientOptions['onResponse'] | undefined\n /** The key of the HTTP transport. */\n key?: TransportConfig['key'] | undefined\n /** Methods to include or exclude from executing RPC requests. */\n methods?: TransportConfig['methods'] | undefined\n /** The name of the HTTP transport. */\n name?: TransportConfig['name'] | undefined\n /** Whether to return JSON RPC errors as responses instead of throwing. */\n raw?: raw | boolean | undefined\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount'] | undefined\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay'] | undefined\n /** Typed JSON-RPC schema for the transport. */\n rpcSchema?: rpcSchema | RpcSchema | undefined\n /** The timeout (in ms) for the HTTP request. Default: 10_000 */\n timeout?: TransportConfig['timeout'] | undefined\n}\n\nexport type HttpTransport<\n rpcSchema extends RpcSchema | undefined = undefined,\n raw extends boolean = false,\n> = Transport<\n 'http',\n {\n fetchOptions?: HttpTransportConfig['fetchOptions'] | undefined\n url?: string | undefined\n },\n BtcRpcRequestFn<rpcSchema, raw>\n>\n\nexport type HttpTransportErrorType =\n | CreateTransportErrorType\n | UrlRequiredErrorType\n | ErrorType\n\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http<\n rpcSchema extends RpcSchema | undefined = undefined,\n raw extends boolean = false,\n>(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string | undefined,\n config: HttpTransportConfig<rpcSchema, raw> = {}\n): HttpTransport<rpcSchema, raw> {\n const {\n batch,\n fetchOptions,\n key = 'http',\n methods = { exclude: UTXOAPISchemaMethods },\n name = 'HTTP JSON-RPC',\n onFetchRequest,\n onFetchResponse,\n retryDelay,\n raw,\n } = config\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } =\n typeof batch === 'object' ? batch : {}\n const retryCount = config.retryCount ?? retryCount_\n const timeout = timeout_ ?? config.timeout ?? 10_000\n const url_ = url || chain?.rpcUrls.default.http[0]\n if (!url_) {\n throw new UrlRequiredError()\n }\n\n const rpcClient = getHttpRpcClient(url_, {\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n })\n\n return createTransport(\n {\n key,\n methods,\n name,\n async request({ method, params }) {\n const body = {\n jsonrpc: '2.0' as const,\n id: idCache.take(),\n method,\n params,\n }\n\n const { schedule } = createBatchScheduler({\n id: url_,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize\n },\n fn: (body: RpcRequest[]) =>\n rpcClient.request({\n body,\n }),\n sort: (a, b) => a.id - b.id,\n })\n\n const fn = async (body: RpcRequest) =>\n batch\n ? schedule(body)\n : [\n await rpcClient.request({\n body,\n }),\n ]\n\n const [{ error, result }] = await fn(body)\n\n if (raw) {\n return { error, result }\n }\n if (error) {\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n })\n }\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n fetchOptions,\n url: url_,\n }\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;AAsFA,SAAgB,KAKd,KACA,SAA8C,
|
|
1
|
+
{"version":3,"file":"http.js","names":["UTXOAPISchemaMethods","UrlRequiredError","getHttpRpcClient","createTransport","idCache","createBatchScheduler","RpcRequestError"],"sources":["../../../src/transports/http.ts"],"sourcesContent":["import { RpcRequestError } from '../errors/request.js'\nimport {\n UrlRequiredError,\n type UrlRequiredErrorType,\n} from '../errors/transport.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport { createTransport } from '../factories/createTransport.js'\nimport type { BtcRpcRequestFn, RpcSchema } from '../types/request.js'\nimport type {\n CreateTransportErrorType,\n Transport,\n TransportConfig,\n} from '../types/transport.js'\nimport { createBatchScheduler } from '../utils/createBatchScheduler.js'\nimport { idCache } from '../utils/idCache.js'\nimport {\n getHttpRpcClient,\n type HttpRpcClientOptions,\n type RpcRequest,\n} from './getHttpRpcClient.js'\nimport { UTXOAPISchemaMethods } from './types.js'\n\nexport type HttpTransportConfig<\n rpcSchema extends RpcSchema | undefined = undefined,\n raw extends boolean = false,\n> = {\n /**\n * Whether to enable Batch JSON-RPC.\n * @link https://www.jsonrpc.org/specification#batch\n */\n batch?:\n | boolean\n | {\n /** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */\n batchSize?: number | undefined\n /** The maximum number of milliseconds to wait before sending a batch. @default 0 */\n wait?: number | undefined\n }\n | undefined\n /**\n * Request configuration to pass to `fetch`.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch\n */\n fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined\n /** A callback to handle the response from `fetch`. */\n onFetchRequest?: HttpRpcClientOptions['onRequest'] | undefined\n /** A callback to handle the response from `fetch`. */\n onFetchResponse?: HttpRpcClientOptions['onResponse'] | undefined\n /** The key of the HTTP transport. */\n key?: TransportConfig['key'] | undefined\n /** Methods to include or exclude from executing RPC requests. */\n methods?: TransportConfig['methods'] | undefined\n /** The name of the HTTP transport. */\n name?: TransportConfig['name'] | undefined\n /** Whether to return JSON RPC errors as responses instead of throwing. */\n raw?: raw | boolean | undefined\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount'] | undefined\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay'] | undefined\n /** Typed JSON-RPC schema for the transport. */\n rpcSchema?: rpcSchema | RpcSchema | undefined\n /** The timeout (in ms) for the HTTP request. Default: 10_000 */\n timeout?: TransportConfig['timeout'] | undefined\n}\n\nexport type HttpTransport<\n rpcSchema extends RpcSchema | undefined = undefined,\n raw extends boolean = false,\n> = Transport<\n 'http',\n {\n fetchOptions?: HttpTransportConfig['fetchOptions'] | undefined\n url?: string | undefined\n },\n BtcRpcRequestFn<rpcSchema, raw>\n>\n\nexport type HttpTransportErrorType =\n | CreateTransportErrorType\n | UrlRequiredErrorType\n | ErrorType\n\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http<\n rpcSchema extends RpcSchema | undefined = undefined,\n raw extends boolean = false,\n>(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string | undefined,\n config: HttpTransportConfig<rpcSchema, raw> = {}\n): HttpTransport<rpcSchema, raw> {\n const {\n batch,\n fetchOptions,\n key = 'http',\n methods = { exclude: UTXOAPISchemaMethods },\n name = 'HTTP JSON-RPC',\n onFetchRequest,\n onFetchResponse,\n retryDelay,\n raw,\n } = config\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } =\n typeof batch === 'object' ? batch : {}\n const retryCount = config.retryCount ?? retryCount_\n const timeout = timeout_ ?? config.timeout ?? 10_000\n const url_ = url || chain?.rpcUrls.default.http[0]\n if (!url_) {\n throw new UrlRequiredError()\n }\n\n const rpcClient = getHttpRpcClient(url_, {\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n })\n\n return createTransport(\n {\n key,\n methods,\n name,\n async request({ method, params }) {\n const body = {\n jsonrpc: '2.0' as const,\n id: idCache.take(),\n method,\n params,\n }\n\n const { schedule } = createBatchScheduler({\n id: url_,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize\n },\n fn: (body: RpcRequest[]) =>\n rpcClient.request({\n body,\n }),\n sort: (a, b) => a.id - b.id,\n })\n\n const fn = async (body: RpcRequest) =>\n batch\n ? schedule(body)\n : [\n await rpcClient.request({\n body,\n }),\n ]\n\n const [{ error, result }] = await fn(body)\n\n if (raw) {\n return { error, result }\n }\n if (error) {\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n })\n }\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n fetchOptions,\n url: url_,\n }\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;AAsFA,SAAgB,KAKd,KACA,SAA8C,CAAC,GAChB;CAC/B,MAAM,EACJ,OACA,cACA,MAAM,QACN,UAAU,EAAE,SAASA,yBAAAA,qBAAqB,GAC1C,OAAO,iBACP,gBACA,iBACA,YACA,QACE;CACJ,QAAQ,EAAE,OAAO,YAAY,aAAa,SAAS,eAAe;EAChE,MAAM,EAAE,YAAY,KAAM,OAAO,MAC/B,OAAO,UAAU,WAAW,QAAQ,CAAC;EACvC,MAAM,aAAa,OAAO,cAAc;EACxC,MAAM,UAAU,YAAY,OAAO,WAAW;EAC9C,MAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,KAAK;EAChD,IAAI,CAAC,MACH,MAAM,IAAIC,yBAAAA,iBAAiB;EAG7B,MAAM,YAAYC,oCAAAA,iBAAiB,MAAM;GACvC;GACA,WAAW;GACX,YAAY;GACZ;EACF,CAAC;EAED,OAAOC,kCAAAA,gBACL;GACE;GACA;GACA;GACA,MAAM,QAAQ,EAAE,QAAQ,UAAU;IAChC,MAAM,OAAO;KACX,SAAS;KACT,IAAIC,sBAAAA,QAAQ,KAAK;KACjB;KACA;IACF;IAEA,MAAM,EAAE,aAAaC,mCAAAA,qBAAqB;KACxC,IAAI;KACJ;KACA,iBAAiB,UAAU;MACzB,OAAO,SAAS,SAAS;KAC3B;KACA,KAAK,SACH,UAAU,QAAQ,EAChB,KACF,CAAC;KACH,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE;IAC3B,CAAC;IAED,MAAM,KAAK,OAAO,SAChB,QACI,SAAS,IAAI,IACb,CACE,MAAM,UAAU,QAAQ,EACtB,KACF,CAAC,CACH;IAEN,MAAM,CAAC,EAAE,OAAO,YAAY,MAAM,GAAG,IAAI;IAEzC,IAAI,KACF,OAAO;KAAE;KAAO;IAAO;IAEzB,IAAI,OACF,MAAM,IAAIC,uBAAAA,gBAAgB;KACxB;KACA;KACA,KAAK;IACP,CAAC;IAEH,OAAO;GACT;GACA;GACA;GACA;GACA,MAAM;EACR,GACA;GACE;GACA,KAAK;EACP,CACF;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.js","names":[],"sources":["../../../../src/transports/mempool/getBalance.ts"],"sourcesContent":["import type { RpcMethodHandler } from '../types.js'\nimport type { MempoolBalanceResponse } from './mempool.types.js'\n\nexport const getBalance: RpcMethodHandler<'getBalance'> = async (\n client,\n { baseUrl },\n { address }\n) => {\n const apiUrl = `${baseUrl}/address/${address}`\n const response = (await client.request({\n url: apiUrl,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolBalanceResponse\n const balance =\n response.chain_stats.funded_txo_sum - response.chain_stats.spent_txo_sum\n return {\n result: BigInt(balance),\n }\n}\n"],"mappings":";;AAGA,MAAa,aAA6C,OACxD,QACA,EAAE,WACF,EAAE,cACC;CACH,MAAM,SAAS,GAAG,QAAQ,WAAW;CACrC,MAAM,WAAY,MAAM,OAAO,QAAQ;EACrC,KAAK;EACL,cAAc,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"getBalance.js","names":[],"sources":["../../../../src/transports/mempool/getBalance.ts"],"sourcesContent":["import type { RpcMethodHandler } from '../types.js'\nimport type { MempoolBalanceResponse } from './mempool.types.js'\n\nexport const getBalance: RpcMethodHandler<'getBalance'> = async (\n client,\n { baseUrl },\n { address }\n) => {\n const apiUrl = `${baseUrl}/address/${address}`\n const response = (await client.request({\n url: apiUrl,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolBalanceResponse\n const balance =\n response.chain_stats.funded_txo_sum - response.chain_stats.spent_txo_sum\n return {\n result: BigInt(balance),\n }\n}\n"],"mappings":";;AAGA,MAAa,aAA6C,OACxD,QACA,EAAE,WACF,EAAE,cACC;CACH,MAAM,SAAS,GAAG,QAAQ,WAAW;CACrC,MAAM,WAAY,MAAM,OAAO,QAAQ;EACrC,KAAK;EACL,cAAc,EAAE,QAAQ,MAAM;CAChC,CAAC;CACD,MAAM,UACJ,SAAS,YAAY,iBAAiB,SAAS,YAAY;CAC7D,OAAO,EACL,QAAQ,OAAO,OAAO,EACxB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionFee.js","names":[],"sources":["../../../../src/transports/mempool/getTransactionFee.ts"],"sourcesContent":["import type { RpcMethodHandler } from '../types.js'\nimport type { MempoolTransaction } from './mempool.types.js'\n\nexport const getTransactionFee: RpcMethodHandler<'getTransactionFee'> = async (\n client,\n { baseUrl },\n { txId }\n) => {\n const apiUrl = `${baseUrl}/tx/${txId}`\n\n const response = (await client.request({\n url: apiUrl,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolTransaction\n\n return {\n result: BigInt(response.fee),\n }\n}\n"],"mappings":";;AAGA,MAAa,oBAA2D,OACtE,QACA,EAAE,WACF,EAAE,WACC;CACH,MAAM,SAAS,GAAG,QAAQ,MAAM;CAEhC,MAAM,WAAY,MAAM,OAAO,QAAQ;EACrC,KAAK;EACL,cAAc,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"getTransactionFee.js","names":[],"sources":["../../../../src/transports/mempool/getTransactionFee.ts"],"sourcesContent":["import type { RpcMethodHandler } from '../types.js'\nimport type { MempoolTransaction } from './mempool.types.js'\n\nexport const getTransactionFee: RpcMethodHandler<'getTransactionFee'> = async (\n client,\n { baseUrl },\n { txId }\n) => {\n const apiUrl = `${baseUrl}/tx/${txId}`\n\n const response = (await client.request({\n url: apiUrl,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolTransaction\n\n return {\n result: BigInt(response.fee),\n }\n}\n"],"mappings":";;AAGA,MAAa,oBAA2D,OACtE,QACA,EAAE,WACF,EAAE,WACC;CACH,MAAM,SAAS,GAAG,QAAQ,MAAM;CAEhC,MAAM,WAAY,MAAM,OAAO,QAAQ;EACrC,KAAK;EACL,cAAc,EAAE,QAAQ,MAAM;CAChC,CAAC;CAED,OAAO,EACL,QAAQ,OAAO,SAAS,GAAG,EAC7B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactions.js","names":["urlWithParams","mempoolTransactionTransformer"],"sources":["../../../../src/transports/mempool/getTransactions.ts"],"sourcesContent":["import { urlWithParams } from '../../utils/url.js'\nimport type { RpcMethodHandler } from '../types.js'\nimport type {\n MempoolBalanceResponse,\n MempoolUTXOTransactionsResponse,\n} from './mempool.types.js'\nimport { mempoolTransactionTransformer } from './utils.js'\n\nexport const getTransactions: RpcMethodHandler<'getTransactions'> = async (\n client,\n { baseUrl },\n { address, limit = 50, offset = 0, afterTxId }\n) => {\n const apiUrlAddress = `${baseUrl}/address/${address}`\n const balanceResponse = (await client.request({\n url: apiUrlAddress,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolBalanceResponse\n const totalTxns =\n balanceResponse.chain_stats.tx_count +\n balanceResponse.mempool_stats.tx_count\n\n const apiUrl = urlWithParams(`${baseUrl}/address/${address}/txs`, {\n after_txid: afterTxId,\n })\n\n const response = (await client.request({\n url: apiUrl,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolUTXOTransactionsResponse\n\n const transactions = response.map(mempoolTransactionTransformer)\n\n const result = {\n transactions,\n total: totalTxns,\n itemsPerPage: limit,\n hasMore: offset + transactions.length < totalTxns,\n }\n\n return {\n result,\n }\n}\n"],"mappings":";;;;AAQA,MAAa,kBAAuD,OAClE,QACA,EAAE,WACF,EAAE,SAAS,QAAQ,IAAI,SAAS,GAAG,gBAChC;CACH,MAAM,gBAAgB,GAAG,QAAQ,WAAW;CAC5C,MAAM,kBAAmB,MAAM,OAAO,QAAQ;EAC5C,KAAK;EACL,cAAc,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"getTransactions.js","names":["urlWithParams","mempoolTransactionTransformer"],"sources":["../../../../src/transports/mempool/getTransactions.ts"],"sourcesContent":["import { urlWithParams } from '../../utils/url.js'\nimport type { RpcMethodHandler } from '../types.js'\nimport type {\n MempoolBalanceResponse,\n MempoolUTXOTransactionsResponse,\n} from './mempool.types.js'\nimport { mempoolTransactionTransformer } from './utils.js'\n\nexport const getTransactions: RpcMethodHandler<'getTransactions'> = async (\n client,\n { baseUrl },\n { address, limit = 50, offset = 0, afterTxId }\n) => {\n const apiUrlAddress = `${baseUrl}/address/${address}`\n const balanceResponse = (await client.request({\n url: apiUrlAddress,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolBalanceResponse\n const totalTxns =\n balanceResponse.chain_stats.tx_count +\n balanceResponse.mempool_stats.tx_count\n\n const apiUrl = urlWithParams(`${baseUrl}/address/${address}/txs`, {\n after_txid: afterTxId,\n })\n\n const response = (await client.request({\n url: apiUrl,\n fetchOptions: { method: 'GET' },\n })) as unknown as MempoolUTXOTransactionsResponse\n\n const transactions = response.map(mempoolTransactionTransformer)\n\n const result = {\n transactions,\n total: totalTxns,\n itemsPerPage: limit,\n hasMore: offset + transactions.length < totalTxns,\n }\n\n return {\n result,\n }\n}\n"],"mappings":";;;;AAQA,MAAa,kBAAuD,OAClE,QACA,EAAE,WACF,EAAE,SAAS,QAAQ,IAAI,SAAS,GAAG,gBAChC;CACH,MAAM,gBAAgB,GAAG,QAAQ,WAAW;CAC5C,MAAM,kBAAmB,MAAM,OAAO,QAAQ;EAC5C,KAAK;EACL,cAAc,EAAE,QAAQ,MAAM;CAChC,CAAC;CACD,MAAM,YACJ,gBAAgB,YAAY,WAC5B,gBAAgB,cAAc;CAEhC,MAAM,SAASA,kBAAAA,cAAc,GAAG,QAAQ,WAAW,QAAQ,OAAO,EAChE,YAAY,UACd,CAAC;CAOD,MAAM,gBAAe,MALG,OAAO,QAAQ;EACrC,KAAK;EACL,cAAc,EAAE,QAAQ,MAAM;CAChC,CAAC,EAAA,CAE6B,IAAIC,iCAAAA,6BAA6B;CAS/D,OAAO,EACL,QAAA;EAPA;EACA,OAAO;EACP,cAAc;EACd,SAAS,SAAS,aAAa,SAAS;CAInC,EACP;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mempool.js","names":["utxo","mempoolMethods"],"sources":["../../../../src/transports/mempool/mempool.ts"],"sourcesContent":["import type { HttpTransport, HttpTransportConfig } from '../http.js'\nimport type { UTXOMethod } from '../types.js'\nimport { utxo } from '../utxo.js'\nimport { mempoolMethods } from './methods.js'\n\ntype MempoolConfig = {\n baseUrl?: string\n} & HttpTransportConfig\n\nexport const mempool = (config?: MempoolConfig): HttpTransport =>\n utxo(config?.baseUrl || 'https://mempool.space/api', {\n name: 'Mempool.space API',\n key: 'mempool',\n methods: {\n include: Object.keys(mempoolMethods) as UTXOMethod[],\n },\n ...config,\n })\n"],"mappings":";;;;AASA,MAAa,WAAW,WACtBA,wBAAAA,KAAK,QAAQ,WAAW,6BAA6B;CACnD,MAAM;CACN,KAAK;CACL,SAAS,EACP,SAAS,OAAO,KAAKC,mCAAAA,
|
|
1
|
+
{"version":3,"file":"mempool.js","names":["utxo","mempoolMethods"],"sources":["../../../../src/transports/mempool/mempool.ts"],"sourcesContent":["import type { HttpTransport, HttpTransportConfig } from '../http.js'\nimport type { UTXOMethod } from '../types.js'\nimport { utxo } from '../utxo.js'\nimport { mempoolMethods } from './methods.js'\n\ntype MempoolConfig = {\n baseUrl?: string\n} & HttpTransportConfig\n\nexport const mempool = (config?: MempoolConfig): HttpTransport =>\n utxo(config?.baseUrl || 'https://mempool.space/api', {\n name: 'Mempool.space API',\n key: 'mempool',\n methods: {\n include: Object.keys(mempoolMethods) as UTXOMethod[],\n },\n ...config,\n })\n"],"mappings":";;;;AASA,MAAa,WAAW,WACtBA,wBAAAA,KAAK,QAAQ,WAAW,6BAA6B;CACnD,MAAM;CACN,KAAK;CACL,SAAS,EACP,SAAS,OAAO,KAAKC,mCAAAA,cAAc,EACrC;CACA,GAAG;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methods.js","names":[],"sources":["../../../../src/transports/mempool/methods.ts"],"sourcesContent":["import type { RpcMethods } from '../types.js'\nimport { getBalance } from './getBalance.js'\nimport { getTransactionFee } from './getTransactionFee.js'\nimport { getTransactions } from './getTransactions.js'\n\nexport const mempoolMethods: RpcMethods = {\n getBalance,\n getTransactions,\n getTransactionFee,\n}\n"],"mappings":";;;;;AAKA,MAAa,iBAA6B;CACxC,YAAA,sCAAA;CACA,iBAAA,2CAAA;CACA,mBAAA,6CAAA;
|
|
1
|
+
{"version":3,"file":"methods.js","names":[],"sources":["../../../../src/transports/mempool/methods.ts"],"sourcesContent":["import type { RpcMethods } from '../types.js'\nimport { getBalance } from './getBalance.js'\nimport { getTransactionFee } from './getTransactionFee.js'\nimport { getTransactions } from './getTransactions.js'\n\nexport const mempoolMethods: RpcMethods = {\n getBalance,\n getTransactions,\n getTransactionFee,\n}\n"],"mappings":";;;;;AAKA,MAAa,iBAA6B;CACxC,YAAA,sCAAA;CACA,iBAAA,2CAAA;CACA,mBAAA,6CAAA;AACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { UTXOTransaction } from "../../types/transaction.js";
|
|
2
2
|
import { MempoolTransaction } from "./mempool.types.js";
|
|
3
|
-
|
|
4
3
|
//#region src/transports/mempool/utils.d.ts
|
|
5
4
|
declare const mempoolTransactionTransformer: (txn: MempoolTransaction) => Partial<UTXOTransaction>;
|
|
6
5
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../../src/transports/mempool/utils.ts"],"sourcesContent":["import type { UTXOTransaction } from '../../types/transaction.js'\nimport type { MempoolTransaction } from './mempool.types.js'\n\nexport const mempoolTransactionTransformer = (\n txn: MempoolTransaction\n): Partial<UTXOTransaction> => ({\n hash: txn.txid,\n txid: txn.txid,\n vout: txn.vout.map((vout, index) => ({\n n: index,\n scriptPubKey: {\n address: vout.scriptpubkey_address,\n asm: vout.scriptpubkey_asm,\n type: vout.scriptpubkey_type,\n desc: vout.scriptpubkey,\n hex: vout.scriptpubkey,\n },\n value: vout.value,\n })),\n vin: txn.vin.map((vin) => ({\n scriptSig: {\n asm: vin.scriptsig_asm,\n hex: vin.scriptsig,\n },\n sequence: vin.sequence,\n txinwitness: vin.witness,\n txid: vin.txid,\n vout: vin.vout,\n })),\n})\n"],"mappings":";;AAGA,MAAa,iCACX,SAC8B;CAC9B,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI,KAAK,KAAK,MAAM,WAAW;EACnC,GAAG;EACH,cAAc;GACZ,SAAS,KAAK;GACd,KAAK,KAAK;GACV,MAAM,KAAK;GACX,MAAM,KAAK;GACX,KAAK,KAAK;
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../../src/transports/mempool/utils.ts"],"sourcesContent":["import type { UTXOTransaction } from '../../types/transaction.js'\nimport type { MempoolTransaction } from './mempool.types.js'\n\nexport const mempoolTransactionTransformer = (\n txn: MempoolTransaction\n): Partial<UTXOTransaction> => ({\n hash: txn.txid,\n txid: txn.txid,\n vout: txn.vout.map((vout, index) => ({\n n: index,\n scriptPubKey: {\n address: vout.scriptpubkey_address,\n asm: vout.scriptpubkey_asm,\n type: vout.scriptpubkey_type,\n desc: vout.scriptpubkey,\n hex: vout.scriptpubkey,\n },\n value: vout.value,\n })),\n vin: txn.vin.map((vin) => ({\n scriptSig: {\n asm: vin.scriptsig_asm,\n hex: vin.scriptsig,\n },\n sequence: vin.sequence,\n txinwitness: vin.witness,\n txid: vin.txid,\n vout: vin.vout,\n })),\n})\n"],"mappings":";;AAGA,MAAa,iCACX,SAC8B;CAC9B,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI,KAAK,KAAK,MAAM,WAAW;EACnC,GAAG;EACH,cAAc;GACZ,SAAS,KAAK;GACd,KAAK,KAAK;GACV,MAAM,KAAK;GACX,MAAM,KAAK;GACX,KAAK,KAAK;EACZ;EACA,OAAO,KAAK;CACd,EAAE;CACF,KAAK,IAAI,IAAI,KAAK,SAAS;EACzB,WAAW;GACT,KAAK,IAAI;GACT,KAAK,IAAI;EACX;EACA,UAAU,IAAI;EACd,aAAa,IAAI;EACjB,MAAM,IAAI;EACV,MAAM,IAAI;CACZ,EAAE;AACJ"}
|
|
@@ -2,7 +2,6 @@ import { BlockStats, BlockStatsKeys } from "../types/blockStats.js";
|
|
|
2
2
|
import { UTXO, UTXOTransaction } from "../types/transaction.js";
|
|
3
3
|
import { xPubAccount } from "../types/xpub.js";
|
|
4
4
|
import { HttpRpcClient } from "./getHttpRpcClient.js";
|
|
5
|
-
|
|
6
5
|
//#region src/transports/types.d.ts
|
|
7
6
|
declare const UTXOAPISchemaMethods: UTXOMethod[];
|
|
8
7
|
type UTXOAPISchema = [{
|
|
@@ -72,25 +71,28 @@ type UTXOSchema = [{
|
|
|
72
71
|
}, ...UTXOAPISchema];
|
|
73
72
|
type UTXOMethod = UTXOSchema[number]["Method"];
|
|
74
73
|
type SignPsbtParameters = {
|
|
75
|
-
/** The PSBT encoded as a hexadecimal string */
|
|
74
|
+
/** The PSBT encoded as a hexadecimal string */
|
|
75
|
+
psbt: string;
|
|
76
76
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
* Array of objects specifying details about the inputs to be signed
|
|
78
|
+
*/
|
|
79
79
|
inputsToSign: {
|
|
80
80
|
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
sigHash?: number;
|
|
85
|
-
|
|
81
|
+
* The SigHash type to use for signing (e.g., SIGHASH_ALL).
|
|
82
|
+
* If not specified, a default value is used.
|
|
83
|
+
*/
|
|
84
|
+
sigHash?: number;
|
|
85
|
+
/** The Bitcoin address associated with the input that will be signed */
|
|
86
|
+
address: string;
|
|
87
|
+
/** An array of indexes in the PSBT corresponding to the inputs that need to be signed */
|
|
86
88
|
signingIndexes: number[];
|
|
87
89
|
}[];
|
|
88
90
|
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
* Whether to finalize the PSBT after signing.
|
|
92
|
+
* If `true`, the PSBT will be completed and ready for broadcasting.
|
|
93
|
+
* If `false` or omitted, the PSBT remains partially signed.
|
|
94
|
+
* Some wallets does not support it.
|
|
95
|
+
*/
|
|
94
96
|
finalize?: boolean;
|
|
95
97
|
};
|
|
96
98
|
type SignPsbtReturnType = string;
|
|
@@ -118,7 +120,7 @@ type RpcMethodHandler<M extends UTXOMethod = UTXOMethod> = (client: HttpRpcClien
|
|
|
118
120
|
}>["Parameters"]) => Promise<RpcResponse<Extract<UTXOSchema[number], {
|
|
119
121
|
Method: M;
|
|
120
122
|
}>["ReturnType"]>>;
|
|
121
|
-
type RpcMethods = { [key in UTXOMethod]?: RpcMethodHandler<key
|
|
123
|
+
type RpcMethods = { [key in UTXOMethod]?: RpcMethodHandler<key>; };
|
|
122
124
|
//#endregion
|
|
123
125
|
export { ErrorResult, RpcMethodHandler, RpcMethods, RpcResponse, SignPsbtParameters, SignPsbtReturnType, SuccessResult, UTXOAPISchema, UTXOAPISchemaMethods, UTXOMethod, UTXOSchema, UTXOWalletSchema };
|
|
124
126
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/transports/types.ts"],"sourcesContent":["import type { BlockStats, BlockStatsKeys } from '../types/blockStats.js'\nimport type { UTXO, UTXOTransaction } from '../types/transaction.js'\nimport type { xPubAccount } from '../types/xpub.js'\nimport type { HttpRpcClient } from './getHttpRpcClient.js'\n\nexport const UTXOAPISchemaMethods: UTXOMethod[] = [\n 'getBalance',\n 'getTransactions',\n 'getUTXOs',\n 'getTransactionFee',\n 'getXPubAddresses',\n]\n\nexport type UTXOAPISchema = [\n {\n Method: 'getBalance'\n Parameters: { address: string }\n ReturnType: bigint\n },\n {\n Method: 'getTransactions'\n Parameters: {\n address: string\n offset?: number\n limit?: number\n lastBlock?: string\n afterTxId?: string\n }\n ReturnType: {\n transactions: Array<Partial<UTXOTransaction>>\n total: number\n hasMore?: boolean\n }\n },\n {\n Method: 'getTransactionFee'\n Parameters: {\n txId: string\n }\n ReturnType: bigint\n },\n {\n Method: 'getUTXOs'\n Parameters: {\n address: string\n minValue?: number\n }\n ReturnType: Array<UTXO>\n },\n {\n Method: 'getXPubAddresses'\n Parameters: {\n xPubKey: string\n }\n ReturnType: xPubAccount\n },\n]\n\nexport type UTXOSchema = [\n {\n Method: 'getblockcount'\n Parameters: []\n ReturnType: number\n },\n {\n Method: 'getblockhash'\n Parameters: [number]\n ReturnType: string\n },\n {\n Method: 'getblock'\n Parameters: [string, number]\n ReturnType: string\n },\n {\n Method: 'getblockstats'\n Parameters: [string | number, Array<BlockStatsKeys>?]\n ReturnType: BlockStats\n },\n {\n Method: 'sendrawtransaction'\n Parameters: [string, number?]\n ReturnType: string\n },\n {\n Method: 'getrawtransaction'\n Parameters: [string, boolean, string?]\n ReturnType: UTXOTransaction\n },\n ...UTXOAPISchema,\n]\n\nexport type UTXOMethod = UTXOSchema[number]['Method']\n\nexport type SignPsbtParameters = {\n /** The PSBT encoded as a hexadecimal string */\n psbt: string\n /**\n * Array of objects specifying details about the inputs to be signed\n */\n inputsToSign: {\n /**\n * The SigHash type to use for signing (e.g., SIGHASH_ALL).\n * If not specified, a default value is used.\n */\n sigHash?: number\n /** The Bitcoin address associated with the input that will be signed */\n address: string\n /** An array of indexes in the PSBT corresponding to the inputs that need to be signed */\n signingIndexes: number[]\n }[]\n /**\n * Whether to finalize the PSBT after signing.\n * If `true`, the PSBT will be completed and ready for broadcasting.\n * If `false` or omitted, the PSBT remains partially signed.\n * Some wallets does not support it.\n */\n finalize?: boolean\n}\n\nexport type SignPsbtReturnType = string\n\nexport type UTXOWalletSchema = readonly [\n {\n Method: 'signPsbt'\n Parameters: SignPsbtParameters\n ReturnType: SignPsbtReturnType\n },\n]\n\nexport type SuccessResult<result> = {\n method?: undefined\n result: result\n error?: undefined\n}\nexport type ErrorResult<error> = {\n method?: undefined\n result?: undefined\n error: error\n}\n\nexport type RpcResponse<result = any, error = any> =\n | SuccessResult<result>\n | ErrorResult<error>\n\nexport type RpcMethodHandler<M extends UTXOMethod = UTXOMethod> = (\n client: HttpRpcClient,\n config: { baseUrl: string; apiKey?: string },\n params: Extract<UTXOSchema[number], { Method: M }>['Parameters']\n) => Promise<\n RpcResponse<Extract<UTXOSchema[number], { Method: M }>['ReturnType']>\n>\n\nexport type RpcMethods = {\n [key in UTXOMethod]?: RpcMethodHandler<key>\n}\n"],"mappings":";;AAKA,MAAa,uBAAqC;CAChD;CACA;CACA;CACA;CACA;
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/transports/types.ts"],"sourcesContent":["import type { BlockStats, BlockStatsKeys } from '../types/blockStats.js'\nimport type { UTXO, UTXOTransaction } from '../types/transaction.js'\nimport type { xPubAccount } from '../types/xpub.js'\nimport type { HttpRpcClient } from './getHttpRpcClient.js'\n\nexport const UTXOAPISchemaMethods: UTXOMethod[] = [\n 'getBalance',\n 'getTransactions',\n 'getUTXOs',\n 'getTransactionFee',\n 'getXPubAddresses',\n]\n\nexport type UTXOAPISchema = [\n {\n Method: 'getBalance'\n Parameters: { address: string }\n ReturnType: bigint\n },\n {\n Method: 'getTransactions'\n Parameters: {\n address: string\n offset?: number\n limit?: number\n lastBlock?: string\n afterTxId?: string\n }\n ReturnType: {\n transactions: Array<Partial<UTXOTransaction>>\n total: number\n hasMore?: boolean\n }\n },\n {\n Method: 'getTransactionFee'\n Parameters: {\n txId: string\n }\n ReturnType: bigint\n },\n {\n Method: 'getUTXOs'\n Parameters: {\n address: string\n minValue?: number\n }\n ReturnType: Array<UTXO>\n },\n {\n Method: 'getXPubAddresses'\n Parameters: {\n xPubKey: string\n }\n ReturnType: xPubAccount\n },\n]\n\nexport type UTXOSchema = [\n {\n Method: 'getblockcount'\n Parameters: []\n ReturnType: number\n },\n {\n Method: 'getblockhash'\n Parameters: [number]\n ReturnType: string\n },\n {\n Method: 'getblock'\n Parameters: [string, number]\n ReturnType: string\n },\n {\n Method: 'getblockstats'\n Parameters: [string | number, Array<BlockStatsKeys>?]\n ReturnType: BlockStats\n },\n {\n Method: 'sendrawtransaction'\n Parameters: [string, number?]\n ReturnType: string\n },\n {\n Method: 'getrawtransaction'\n Parameters: [string, boolean, string?]\n ReturnType: UTXOTransaction\n },\n ...UTXOAPISchema,\n]\n\nexport type UTXOMethod = UTXOSchema[number]['Method']\n\nexport type SignPsbtParameters = {\n /** The PSBT encoded as a hexadecimal string */\n psbt: string\n /**\n * Array of objects specifying details about the inputs to be signed\n */\n inputsToSign: {\n /**\n * The SigHash type to use for signing (e.g., SIGHASH_ALL).\n * If not specified, a default value is used.\n */\n sigHash?: number\n /** The Bitcoin address associated with the input that will be signed */\n address: string\n /** An array of indexes in the PSBT corresponding to the inputs that need to be signed */\n signingIndexes: number[]\n }[]\n /**\n * Whether to finalize the PSBT after signing.\n * If `true`, the PSBT will be completed and ready for broadcasting.\n * If `false` or omitted, the PSBT remains partially signed.\n * Some wallets does not support it.\n */\n finalize?: boolean\n}\n\nexport type SignPsbtReturnType = string\n\nexport type UTXOWalletSchema = readonly [\n {\n Method: 'signPsbt'\n Parameters: SignPsbtParameters\n ReturnType: SignPsbtReturnType\n },\n]\n\nexport type SuccessResult<result> = {\n method?: undefined\n result: result\n error?: undefined\n}\nexport type ErrorResult<error> = {\n method?: undefined\n result?: undefined\n error: error\n}\n\nexport type RpcResponse<result = any, error = any> =\n | SuccessResult<result>\n | ErrorResult<error>\n\nexport type RpcMethodHandler<M extends UTXOMethod = UTXOMethod> = (\n client: HttpRpcClient,\n config: { baseUrl: string; apiKey?: string },\n params: Extract<UTXOSchema[number], { Method: M }>['Parameters']\n) => Promise<\n RpcResponse<Extract<UTXOSchema[number], { Method: M }>['ReturnType']>\n>\n\nexport type RpcMethods = {\n [key in UTXOMethod]?: RpcMethodHandler<key>\n}\n"],"mappings":";;AAKA,MAAa,uBAAqC;CAChD;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.js","names":["UrlRequiredError","getHttpRpcClient","getRpcProviderMethods","createTransport","idCache","RpcRequestError"],"sources":["../../../src/transports/utxo.ts"],"sourcesContent":["import { RpcRequestError } from '../errors/request.js'\nimport { UrlRequiredError } from '../errors/transport.js'\nimport { createTransport } from '../factories/createTransport.js'\nimport { idCache } from '../utils/idCache.js'\nimport { getHttpRpcClient } from './getHttpRpcClient.js'\nimport { getRpcProviderMethods } from './getRpcProviderMethods.js'\nimport type { HttpTransport, HttpTransportConfig } from './http.js'\nimport type { UTXOMethod } from './types.js'\n\ntype UTXOHttpTransportConfig = HttpTransportConfig & {\n includeChainToURL?: boolean\n apiKey?: string\n}\n\nexport function utxo(\n url?: string,\n config: UTXOHttpTransportConfig = {}\n): HttpTransport {\n const {\n fetchOptions,\n key = 'utxo',\n name = 'UTXO HTTP API',\n onFetchRequest,\n onFetchResponse,\n retryDelay,\n apiKey,\n methods,\n } = config\n\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const retryCount = config.retryCount ?? retryCount_\n const timeout = timeout_ ?? config.timeout ?? 10_000\n let url_ = url\n if (config.includeChainToURL) {\n const chainName = chain?.name.replace(' ', '-').toLowerCase()\n url_ = `${url}${chainName ? `/${chainName}` : ''}`\n }\n if (!url_) {\n throw new UrlRequiredError()\n }\n\n const client = getHttpRpcClient(url_, {\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n })\n\n const rpcMethods = getRpcProviderMethods(key)\n\n return createTransport(\n {\n key,\n name,\n methods,\n async request({ method, params }) {\n const body = {\n jsonrpc: '2.0' as const,\n id: idCache.take(),\n method,\n params,\n }\n const methodHandler = rpcMethods?.[method as UTXOMethod]\n const { error, result } = await (methodHandler?.(\n client,\n { baseUrl: url_, apiKey },\n params\n ) ??\n client.request({\n body,\n }))\n if (error) {\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n })\n }\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n fetchOptions,\n url: url_,\n }\n )\n }\n}\n"],"mappings":";;;;;;;;AAcA,SAAgB,KACd,KACA,SAAkC,
|
|
1
|
+
{"version":3,"file":"utxo.js","names":["UrlRequiredError","getHttpRpcClient","getRpcProviderMethods","createTransport","idCache","RpcRequestError"],"sources":["../../../src/transports/utxo.ts"],"sourcesContent":["import { RpcRequestError } from '../errors/request.js'\nimport { UrlRequiredError } from '../errors/transport.js'\nimport { createTransport } from '../factories/createTransport.js'\nimport { idCache } from '../utils/idCache.js'\nimport { getHttpRpcClient } from './getHttpRpcClient.js'\nimport { getRpcProviderMethods } from './getRpcProviderMethods.js'\nimport type { HttpTransport, HttpTransportConfig } from './http.js'\nimport type { UTXOMethod } from './types.js'\n\ntype UTXOHttpTransportConfig = HttpTransportConfig & {\n includeChainToURL?: boolean\n apiKey?: string\n}\n\nexport function utxo(\n url?: string,\n config: UTXOHttpTransportConfig = {}\n): HttpTransport {\n const {\n fetchOptions,\n key = 'utxo',\n name = 'UTXO HTTP API',\n onFetchRequest,\n onFetchResponse,\n retryDelay,\n apiKey,\n methods,\n } = config\n\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const retryCount = config.retryCount ?? retryCount_\n const timeout = timeout_ ?? config.timeout ?? 10_000\n let url_ = url\n if (config.includeChainToURL) {\n const chainName = chain?.name.replace(' ', '-').toLowerCase()\n url_ = `${url}${chainName ? `/${chainName}` : ''}`\n }\n if (!url_) {\n throw new UrlRequiredError()\n }\n\n const client = getHttpRpcClient(url_, {\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n })\n\n const rpcMethods = getRpcProviderMethods(key)\n\n return createTransport(\n {\n key,\n name,\n methods,\n async request({ method, params }) {\n const body = {\n jsonrpc: '2.0' as const,\n id: idCache.take(),\n method,\n params,\n }\n const methodHandler = rpcMethods?.[method as UTXOMethod]\n const { error, result } = await (methodHandler?.(\n client,\n { baseUrl: url_, apiKey },\n params\n ) ??\n client.request({\n body,\n }))\n if (error) {\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n })\n }\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n fetchOptions,\n url: url_,\n }\n )\n }\n}\n"],"mappings":";;;;;;;;AAcA,SAAgB,KACd,KACA,SAAkC,CAAC,GACpB;CACf,MAAM,EACJ,cACA,MAAM,QACN,OAAO,iBACP,gBACA,iBACA,YACA,QACA,YACE;CAEJ,QAAQ,EAAE,OAAO,YAAY,aAAa,SAAS,eAAe;EAChE,MAAM,aAAa,OAAO,cAAc;EACxC,MAAM,UAAU,YAAY,OAAO,WAAW;EAC9C,IAAI,OAAO;EACX,IAAI,OAAO,mBAAmB;GAC5B,MAAM,YAAY,OAAO,KAAK,QAAQ,KAAK,GAAG,CAAC,CAAC,YAAY;GAC5D,OAAO,GAAG,MAAM,YAAY,IAAI,cAAc;EAChD;EACA,IAAI,CAAC,MACH,MAAM,IAAIA,yBAAAA,iBAAiB;EAG7B,MAAM,SAASC,oCAAAA,iBAAiB,MAAM;GACpC;GACA,WAAW;GACX,YAAY;GACZ;EACF,CAAC;EAED,MAAM,aAAaC,yCAAAA,sBAAsB,GAAG;EAE5C,OAAOC,kCAAAA,gBACL;GACE;GACA;GACA;GACA,MAAM,QAAQ,EAAE,QAAQ,UAAU;IAChC,MAAM,OAAO;KACX,SAAS;KACT,IAAIC,sBAAAA,QAAQ,KAAK;KACjB;KACA;IACF;IACA,MAAM,gBAAgB,aAAa;IACnC,MAAM,EAAE,OAAO,WAAW,OAAO,gBAC/B,QACA;KAAE,SAAS;KAAM;IAAO,GACxB,MACF,KACE,OAAO,QAAQ,EACb,KACF,CAAC;IACH,IAAI,OACF,MAAM,IAAIC,uBAAAA,gBAAgB;KACxB;KACA;KACA,KAAK;IACP,CAAC;IAEH,OAAO;GACT;GACA;GACA;GACA;GACA,MAAM;EACR,GACA;GACE;GACA,KAAK;EACP,CACF;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","names":[],"sources":["../../../src/types/address.ts"],"sourcesContent":["import type { Network } from './chain.js'\n\nexport type Address = string\n\nexport type AddressPurpose = 'payment' | 'ordinals' | 'stacks'\n\nexport enum AddressType {\n p2pkh = 'p2pkh',\n p2sh = 'p2sh',\n p2wpkh = 'p2wpkh',\n p2wsh = 'p2wsh',\n p2tr = 'p2tr',\n}\n\nexport type AddressInfo = {\n bech32: boolean\n network: Network\n address: Address\n type: AddressType\n purpose: AddressPurpose\n}\n"],"mappings":";;AAMA,IAAY,cAAL,yBAAA,aAAA;
|
|
1
|
+
{"version":3,"file":"address.js","names":[],"sources":["../../../src/types/address.ts"],"sourcesContent":["import type { Network } from './chain.js'\n\nexport type Address = string\n\nexport type AddressPurpose = 'payment' | 'ordinals' | 'stacks'\n\nexport enum AddressType {\n p2pkh = 'p2pkh',\n p2sh = 'p2sh',\n p2wpkh = 'p2wpkh',\n p2wsh = 'p2wsh',\n p2tr = 'p2tr',\n}\n\nexport type AddressInfo = {\n bech32: boolean\n network: Network\n address: Address\n type: AddressType\n purpose: AddressPurpose\n}\n"],"mappings":";;AAMA,IAAY,cAAL,yBAAA,aAAA;CACL,YAAA,WAAA;CACA,YAAA,UAAA;CACA,YAAA,YAAA;CACA,YAAA,WAAA;CACA,YAAA,UAAA;;AACF,EAAA,CAAA,CAAA"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
//#region src/types/block.d.ts
|
|
2
2
|
/**
|
|
3
|
-
* Specifies a particular block in the blockchain.
|
|
4
|
-
*
|
|
5
|
-
* - `"latest"`: the latest proposed block
|
|
6
|
-
* - `"earliest"`: the earliest/genesis block – lowest numbered block the client has available
|
|
7
|
-
* - `"pending"`: pending state/transactions – next block built by the client on top
|
|
8
|
-
* of unsafe and containing the set of transactions usually taken from local mempool
|
|
9
|
-
* - `"safe"`: the latest safe head block – the most recent block that is safe from
|
|
10
|
-
* re-orgs under honest majority and certain synchronicity assumptions
|
|
11
|
-
* - `"finalized"`: the latest finalized block – the most recent crypto-economically secure block;
|
|
12
|
-
* cannot be re-orged outside of manual intervention driven by community coordination
|
|
13
|
-
*
|
|
14
|
-
* Using `pending`, while allowed, is not advised, as it may lead
|
|
15
|
-
* to internally inconsistent results. Use of `latest` is safe and will not
|
|
16
|
-
* lead to inconsistent results. Depending on the backing RPC networks caching system,
|
|
17
|
-
* the usage of `pending` may lead to inconsistencies as a result of an
|
|
18
|
-
* overly aggressive cache system. This may cause downstream errors/invalid states.
|
|
19
|
-
*/
|
|
3
|
+
* Specifies a particular block in the blockchain.
|
|
4
|
+
*
|
|
5
|
+
* - `"latest"`: the latest proposed block
|
|
6
|
+
* - `"earliest"`: the earliest/genesis block – lowest numbered block the client has available
|
|
7
|
+
* - `"pending"`: pending state/transactions – next block built by the client on top
|
|
8
|
+
* of unsafe and containing the set of transactions usually taken from local mempool
|
|
9
|
+
* - `"safe"`: the latest safe head block – the most recent block that is safe from
|
|
10
|
+
* re-orgs under honest majority and certain synchronicity assumptions
|
|
11
|
+
* - `"finalized"`: the latest finalized block – the most recent crypto-economically secure block;
|
|
12
|
+
* cannot be re-orged outside of manual intervention driven by community coordination
|
|
13
|
+
*
|
|
14
|
+
* Using `pending`, while allowed, is not advised, as it may lead
|
|
15
|
+
* to internally inconsistent results. Use of `latest` is safe and will not
|
|
16
|
+
* lead to inconsistent results. Depending on the backing RPC networks caching system,
|
|
17
|
+
* the usage of `pending` may lead to inconsistencies as a result of an
|
|
18
|
+
* overly aggressive cache system. This may cause downstream errors/invalid states.
|
|
19
|
+
*/
|
|
20
20
|
type BlockTag = "latest" | "earliest" | "pending" | "safe" | "finalized";
|
|
21
21
|
//#endregion
|
|
22
22
|
export { BlockTag };
|
|
@@ -15,26 +15,37 @@ declare enum Network {
|
|
|
15
15
|
Regtest = "regtest"
|
|
16
16
|
}
|
|
17
17
|
type Chain<formatters extends ChainFormatters | undefined = ChainFormatters | undefined, custom extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
|
|
18
|
-
/** Collection of block explorers */
|
|
18
|
+
/** Collection of block explorers */
|
|
19
|
+
blockExplorers?: {
|
|
19
20
|
[key: string]: ChainBlockExplorer;
|
|
20
21
|
default: ChainBlockExplorer;
|
|
21
|
-
} | undefined;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
} | undefined;
|
|
23
|
+
/** ID in number form */
|
|
24
|
+
id: ChainId;
|
|
25
|
+
/** Human-readable name */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Collection of RPC endpoints */
|
|
24
28
|
rpcUrls: {
|
|
25
29
|
[key: string]: ChainRpcUrls;
|
|
26
30
|
default: ChainRpcUrls;
|
|
27
|
-
};
|
|
31
|
+
};
|
|
32
|
+
/** Flag for test networks */
|
|
28
33
|
testnet?: boolean | undefined;
|
|
29
34
|
} & ChainConfig<formatters, custom>;
|
|
30
35
|
type ChainConfig<formatters extends ChainFormatters | undefined = ChainFormatters | undefined, custom extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
|
|
31
|
-
/** Custom chain data. */
|
|
36
|
+
/** Custom chain data. */
|
|
37
|
+
custom?: custom | undefined;
|
|
38
|
+
/** Modifies how data is formatted and typed (e.g. blocks and transactions) */
|
|
32
39
|
formatters?: formatters | undefined;
|
|
33
40
|
};
|
|
34
41
|
type ChainFormatters = {
|
|
35
|
-
/** Modifies how the Block structure is formatted & typed. */
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
/** Modifies how the Block structure is formatted & typed. */
|
|
43
|
+
block?: ChainFormatter<"block"> | undefined;
|
|
44
|
+
/** Modifies how the Transaction structure is formatted & typed. */
|
|
45
|
+
transaction?: ChainFormatter<"transaction"> | undefined;
|
|
46
|
+
/** Modifies how the TransactionReceipt structure is formatted & typed. */
|
|
47
|
+
transactionReceipt?: ChainFormatter<"transactionReceipt"> | undefined;
|
|
48
|
+
/** Modifies how the TransactionRequest structure is formatted & typed. */
|
|
38
49
|
transactionRequest?: ChainFormatter<"transactionRequest"> | undefined;
|
|
39
50
|
};
|
|
40
51
|
type ChainFormatter<type extends string = string> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","names":[],"sources":["../../../src/types/chain.ts"],"sourcesContent":["export enum ChainId {\n BITCOIN_MAINNET = 'bitcoin:mainnet',\n BITCOIN_TESTNET = 'bitcoin:testnet',\n BITCOIN_TESTNET4 = 'bitcoin:testnet4',\n BITCOIN_SIGNET = 'bitcoin:signet',\n FRACTAL_BITCOIN_MAINNET = 'fractal:mainnet',\n FRACTAL_BITCOIN_TESTNET = 'fractal:testnet',\n STACKS_MAINNET = 'stacks:mainnet',\n STACKS_TESTNET = 'stacks:testnet',\n}\n\nexport enum Network {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Regtest = 'regtest',\n}\n\nexport type Chain<\n formatters extends ChainFormatters | undefined = ChainFormatters | undefined,\n custom extends Record<string, unknown> | undefined =\n | Record<string, unknown>\n | undefined,\n> = {\n /** Collection of block explorers */\n blockExplorers?:\n | {\n [key: string]: ChainBlockExplorer\n default: ChainBlockExplorer\n }\n | undefined\n /** ID in number form */\n id: ChainId\n /** Human-readable name */\n name: string\n /** Collection of RPC endpoints */\n rpcUrls: {\n [key: string]: ChainRpcUrls\n default: ChainRpcUrls\n }\n /** Flag for test networks */\n testnet?: boolean | undefined\n} & ChainConfig<formatters, custom>\n\nexport type ChainConfig<\n formatters extends ChainFormatters | undefined = ChainFormatters | undefined,\n custom extends Record<string, unknown> | undefined =\n | Record<string, unknown>\n | undefined,\n> = {\n /** Custom chain data. */\n custom?: custom | undefined\n /** Modifies how data is formatted and typed (e.g. blocks and transactions) */\n formatters?: formatters | undefined\n}\n\n/////////////////////////////////////////////////////////////////////\n// Formatters\n/////////////////////////////////////////////////////////////////////\n\nexport type ChainFormatters = {\n /** Modifies how the Block structure is formatted & typed. */\n block?: ChainFormatter<'block'> | undefined\n /** Modifies how the Transaction structure is formatted & typed. */\n transaction?: ChainFormatter<'transaction'> | undefined\n /** Modifies how the TransactionReceipt structure is formatted & typed. */\n transactionReceipt?: ChainFormatter<'transactionReceipt'> | undefined\n /** Modifies how the TransactionRequest structure is formatted & typed. */\n transactionRequest?: ChainFormatter<'transactionRequest'> | undefined\n}\n\nexport type ChainFormatter<type extends string = string> = {\n format: (args: any) => any\n type: type\n}\n\n/////////////////////////////////////////////////////////////////////\n// Constants\n/////////////////////////////////////////////////////////////////////\n\ntype ChainBlockExplorer = {\n name: string\n url: string\n apiUrl?: string | undefined\n}\n\ntype ChainRpcUrls = {\n http: readonly string[]\n webSocket?: readonly string[] | undefined\n}\n"],"mappings":";;AAAA,IAAY,UAAL,yBAAA,SAAA;
|
|
1
|
+
{"version":3,"file":"chain.js","names":[],"sources":["../../../src/types/chain.ts"],"sourcesContent":["export enum ChainId {\n BITCOIN_MAINNET = 'bitcoin:mainnet',\n BITCOIN_TESTNET = 'bitcoin:testnet',\n BITCOIN_TESTNET4 = 'bitcoin:testnet4',\n BITCOIN_SIGNET = 'bitcoin:signet',\n FRACTAL_BITCOIN_MAINNET = 'fractal:mainnet',\n FRACTAL_BITCOIN_TESTNET = 'fractal:testnet',\n STACKS_MAINNET = 'stacks:mainnet',\n STACKS_TESTNET = 'stacks:testnet',\n}\n\nexport enum Network {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Regtest = 'regtest',\n}\n\nexport type Chain<\n formatters extends ChainFormatters | undefined = ChainFormatters | undefined,\n custom extends Record<string, unknown> | undefined =\n | Record<string, unknown>\n | undefined,\n> = {\n /** Collection of block explorers */\n blockExplorers?:\n | {\n [key: string]: ChainBlockExplorer\n default: ChainBlockExplorer\n }\n | undefined\n /** ID in number form */\n id: ChainId\n /** Human-readable name */\n name: string\n /** Collection of RPC endpoints */\n rpcUrls: {\n [key: string]: ChainRpcUrls\n default: ChainRpcUrls\n }\n /** Flag for test networks */\n testnet?: boolean | undefined\n} & ChainConfig<formatters, custom>\n\nexport type ChainConfig<\n formatters extends ChainFormatters | undefined = ChainFormatters | undefined,\n custom extends Record<string, unknown> | undefined =\n | Record<string, unknown>\n | undefined,\n> = {\n /** Custom chain data. */\n custom?: custom | undefined\n /** Modifies how data is formatted and typed (e.g. blocks and transactions) */\n formatters?: formatters | undefined\n}\n\n/////////////////////////////////////////////////////////////////////\n// Formatters\n/////////////////////////////////////////////////////////////////////\n\nexport type ChainFormatters = {\n /** Modifies how the Block structure is formatted & typed. */\n block?: ChainFormatter<'block'> | undefined\n /** Modifies how the Transaction structure is formatted & typed. */\n transaction?: ChainFormatter<'transaction'> | undefined\n /** Modifies how the TransactionReceipt structure is formatted & typed. */\n transactionReceipt?: ChainFormatter<'transactionReceipt'> | undefined\n /** Modifies how the TransactionRequest structure is formatted & typed. */\n transactionRequest?: ChainFormatter<'transactionRequest'> | undefined\n}\n\nexport type ChainFormatter<type extends string = string> = {\n format: (args: any) => any\n type: type\n}\n\n/////////////////////////////////////////////////////////////////////\n// Constants\n/////////////////////////////////////////////////////////////////////\n\ntype ChainBlockExplorer = {\n name: string\n url: string\n apiUrl?: string | undefined\n}\n\ntype ChainRpcUrls = {\n http: readonly string[]\n webSocket?: readonly string[] | undefined\n}\n"],"mappings":";;AAAA,IAAY,UAAL,yBAAA,SAAA;CACL,QAAA,qBAAA;CACA,QAAA,qBAAA;CACA,QAAA,sBAAA;CACA,QAAA,oBAAA;CACA,QAAA,6BAAA;CACA,QAAA,6BAAA;CACA,QAAA,oBAAA;CACA,QAAA,oBAAA;;AACF,EAAA,CAAA,CAAA;AAEA,IAAY,UAAL,yBAAA,SAAA;CACL,QAAA,aAAA;CACA,QAAA,aAAA;CACA,QAAA,aAAA;;AACF,EAAA,CAAA,CAAA"}
|
|
@@ -6,46 +6,61 @@ import { Account } from "./account.js";
|
|
|
6
6
|
import { ErrorType } from "../errors/utils.js";
|
|
7
7
|
import { BtcRpcRequestFn, RpcSchema } from "./request.js";
|
|
8
8
|
import { Transport } from "./transport.js";
|
|
9
|
-
|
|
10
9
|
//#region src/types/client.d.ts
|
|
11
10
|
type ClientConfig<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, accountOrAddress extends Account | Address | undefined = Account | Address | undefined, rpcSchema extends RpcSchema | undefined = undefined> = {
|
|
12
|
-
/** The Account to use for the Client. This will be used for Actions that require an account as an argument. */
|
|
11
|
+
/** The Account to use for the Client. This will be used for Actions that require an account as an argument. */
|
|
12
|
+
account?: accountOrAddress | Account | Address | undefined;
|
|
13
13
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
cacheTime?: number | undefined;
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
* Time (in ms) that cached data will remain in memory.
|
|
15
|
+
* @default 4_000
|
|
16
|
+
*/
|
|
17
|
+
cacheTime?: number | undefined;
|
|
18
|
+
/** Chain for the client. */
|
|
19
|
+
chain?: Chain | undefined | chain;
|
|
20
|
+
/** A key for the client. */
|
|
21
|
+
key?: string | undefined;
|
|
22
|
+
/** A name for the client. */
|
|
20
23
|
name?: string | undefined;
|
|
21
24
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
* Frequency (in ms) for polling enabled actions & events.
|
|
26
|
+
* @default 4_000
|
|
27
|
+
*/
|
|
25
28
|
pollingInterval?: number | undefined;
|
|
26
29
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
rpcSchema?: rpcSchema | undefined;
|
|
30
|
-
|
|
30
|
+
* Typed JSON-RPC schema for the client.
|
|
31
|
+
*/
|
|
32
|
+
rpcSchema?: rpcSchema | undefined;
|
|
33
|
+
/** The RPC transport */
|
|
34
|
+
transport: transport;
|
|
35
|
+
/** The type of client. */
|
|
31
36
|
type?: string | undefined;
|
|
32
37
|
};
|
|
33
38
|
type Client<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, rpcSchema extends RpcSchema | undefined = undefined, extended extends Extended | undefined = Extended | undefined> = Client_Base<transport, chain, account, rpcSchema> & (extended extends Extended ? extended : unknown) & {
|
|
34
39
|
extend: <const client extends Extended>(fn: (client: Client<transport, chain, account, rpcSchema, extended>) => client) => Client<transport, chain, account, rpcSchema, Prettify<client> & (extended extends Extended ? extended : unknown)>;
|
|
35
40
|
};
|
|
36
41
|
type Client_Base<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, rpcSchema extends RpcSchema | undefined = undefined> = {
|
|
37
|
-
/** The Account of the Client. */
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
/** The Account of the Client. */
|
|
43
|
+
account: account;
|
|
44
|
+
/** Time (in ms) that cached data will remain in memory. */
|
|
45
|
+
cacheTime: number;
|
|
46
|
+
/** Chain for the client. */
|
|
47
|
+
chain: chain;
|
|
48
|
+
/** A key for the client. */
|
|
49
|
+
key: string;
|
|
50
|
+
/** A name for the client. */
|
|
51
|
+
name: string;
|
|
52
|
+
/** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */
|
|
53
|
+
pollingInterval: number;
|
|
54
|
+
/** Request function wrapped with friendly error handling */
|
|
55
|
+
request: BtcRpcRequestFn<rpcSchema extends undefined ? BitcoinRpcMethods : rpcSchema>;
|
|
56
|
+
/** The RPC transport */
|
|
57
|
+
transport: ReturnType<transport>["config"] & ReturnType<transport>["value"];
|
|
58
|
+
/** The type of client. */
|
|
59
|
+
type: string;
|
|
60
|
+
/** A unique ID for the client. */
|
|
46
61
|
uid: string;
|
|
47
62
|
};
|
|
48
|
-
type Extended = Prettify<{ [_ in keyof Client_Base]?: undefined } & {
|
|
63
|
+
type Extended = Prettify<{ [_ in keyof Client_Base]?: undefined; } & {
|
|
49
64
|
[key: string]: unknown;
|
|
50
65
|
}>;
|
|
51
66
|
type CreateClientErrorType = ErrorType;
|